AtuwaDa A t7.es
Singapore S *M.9S
Malaysia M «14.2S
New Zealand NZ fO-BS
Hong Kong H (79.00
Sweden 30:-SEK
$2.95
USA
0S-9 Atari Amiga Mac S-50
6800 680» 68*08 6U000 68010 68030 68030
Tlio Magazine for Motorola CPU Devices F *r Over a Decode!
This Issue
"C" User Notes pg. 6
100 lb Software User Notes pg. 1 1
FORTH p. 16
Macintosh - Mac Watch pg. 28
FLEX 6809 Diagnostics p. 36
Til* Bit Budwl - New* RcImms, Lctttrc, Updates ttc & DO Continued
aC»D0S Atari Anagi
And Lots Mare!
U5*9 FLBX Midnlod) A tlur Comriiutor frumat
The problem wilh most real-lime operating systems is
simple, they're not an integrated solution. You end up dealing
with a multitude of suppliers for languages, compilers, debug-
gers and other important development tools. And when
something does go wrong, it can be a frustrating experience
hying to straighten out the mess.
Why Not Try the
Microware One-Stop
Total Solution?
Microware's OS-9 Real-Time
Operating System is a total inte-
grated software system, not just
a kernel. VVfe offer an extensive
set of development tools, lan-
guages, I/O and Kernel options.
And this total integrated solution
is entirely designed, built and
supported by the same expert
Microware team.
MJrroWiV¥$Vtinn\ColHff.HKifi
C5-9 14 .1 (Mttmutk id MitrtfWjrr
Ll NIK b j IMduiviik ol At M
VAX iw l>.xk<mi/i u( IXC
The OS-9 Success Kit
A Total Integrated Solution for Your Next Project
Development Tools:
Languages:
C Source level Do bugijer
c-
Symbolic Debugger
Bask
System Slaw Debugger
Pascal
uMACS Ten Editor
Fortran
BeclromcMall
Ada"
Communications
Assembler'
Super Shell
Kernel Options:
I/O Options:
SCSI SASI&SMO Disks
MMU {Security Protection) SuppOil
J-.5-. »-inch Diskettes
Mitfl Coprocessor Support
Magnetic Tape
■ RtsdBit or uMX verslent smote
atiemet-TCP/tP
••VAXHosW
Aiaiet- OS-9 Net
Modularity Lets YOU Choose fust What You Need.
The modular design of OS-9 allows our Operating System
to adapt as your requirements change. OS-9 can support a
complete spectrum of applications — from embedded ROM-
based code in board-level prtxJucts all the way up to laige-
scale systems.
Support is Part
of the Package.
Microware is proudly setting
the indusliy's standard for cus-
lorrter support. \bu'll find pro-
fessional and comprehensive
technical documentation and a
Customer Hotline staffed by
courteous and authoritative soft-
ware engineers.
So slop messing with sim-
ple kernels and independent
suppliers. Call Microware today
and find out more about the
"One-Stop Integrated Solution"
with OS-9!
-~7nictowMc^' OS-9
Microware Systems Corporation
1900 N.W. 114th Street
Des Moines, Iowa 50322
Phone: 515/224- 1929
Western Regional Office
4401 Great America Parkway
Santa Clara, California 95054
Phone: 408/ 980-020 1
Microware Japan Ltd.
41-19 1 loncho 4-Chome
Funabashi City
Chiba 273, Japan
Phone: 0474 (22) 1747
Muataog-020 Miutsuig-Oe Benehmarks
!BMAT7300X«naSyO
AT*T 7300 UNIX PC 690)0
D6C V AX 1 1/780 UNIX tWIuoy 4 1
□eCVAXU/WO '
WrX» OS-» UK s Mhi
68000 054 WK 10 Mha
MVSTAHC-M «*0M OJ-»«» f « WAi
MVST*NG4aaima os-e tst is wu
UUiTAUGJUOUeV UCiiUl Um&UtX M Mkt
32 Ml
Ra (totes
mleaer
Lueg
9.7
7.2
4J
3.6
3.2
3.1
3.7.
3SjO
9.0
6.5
44
M
<J
Z2
0J3
t-t
122
Ma*«
for (i.0: 1 < 999999-. .-.i).
EMiratcd MIPS - MUffrANC-ttlO _. *i MIPS,
Dura ul.ll MIPS: Motorola Seats
OS-9
OS.9 Probuioul Vo>
stvuw
•ti»Jv"fc.CC^n»k.
BaskO?
300 SO
CGsnpUa*
SOO.OO
aeOOO OoaasemHm (wAwrm „i± 1100.00)
loom
FanrsoT?
730 00
MoomfKil
WD 00
OrapwA Pwal
900 A)
Styio-Orsr*
495.00
s<y>e-sa>u
) 95.00
SrjtoMe.se
173.00
SijIo-Qbob-SP* M°»I»
695.00
PAT »/C auv
229.00
JUST w/C mm
79.95
PAT/JUST Canto
J49J0
Jcillf»«» M balm)
995.00
COM
123.00
UniFLKX
VtuFlXXIoMlOwj)
MSO.00
Sclera Saner
150.00
•SUf 'Mni
200 no
G A S dOf«CanQ^
300.00
*C CtJSTpkava)*
3» no
coaot
750.00
CM006M wAuara.
100.00
TM006M .Auoftii
100.00
X-TALK'e»Ad)
9955
C~rra A^esnhfcer
SOjOO
Fortran?*)
450jOO
Sailpiorr (•» Wow)
995 jOO
Strain* MUJTANGflOT* shipped 115 Mhz.
A<Mtc»16J5Mh«6»a20
mxt>
Aodfoj)6J5Hfli.t«BJ]
375 DO
ADJf.»S>Mhi<»»T3XAM
730,00
16Pon«pR5.732
i >> in
CUaumal a 2 A*i<pt<x Canal balm JUU2 AJopKr
163 00
usta aud pbhj*" * aratrrkral tee p«*l»
<ioul of 36 asrtal ports eusyuueel 1
60lmePsnlialVOcanl
198.00
In 3 6*230 Iraoetsce/Ticnr cfcsps,
6 jroupi of S lp« aacfa. vpvsn H*j*ci
dnoioa ooneroj for each trown.
I Tl^LafVwa D04Ju
«•«* fcr boOj dip «od PGA dwkm A ■
pt^wired VBD7 «« ■ Op u> 512K ORAM.
4?5j00
SBC- AN
ftgCyST M_U£hd «*»»»- [nuniiiit I ftN.fiWar*^" ! 11 ^* 1 -call.
LAK eA«»7B— '(*» 120.00
Bit^iwbMcfcvi^t/OQHBriMqfkka SI 99,00
Spot mJ far* i ^irm M\JSTMtG-(W* tj*WB*Wf*vw ■ Scolptor*
$«SJXLSAVBJmX00
Softwm rt DCnL« u
AD MUSTAN&02CP* «
diKSVra en ill ltftM* «DtWan: 10-70* t
•mw (or tj-o-ftp- DtfunuD pp»f»)r «Ac*r 0» win *
The
P
R
O
f
Mustang Specifications
123 Mhz (optima) 16 6 Mhz available) MC68020 full 32-bil wide psdi
32-bii wide data and eddies* buses, n on- multiplexed
on chip instruction cache
object code com pal ibtc with all 68XXX family preevsors
oxhaiiaed instruction ad- malh so- processor interface
68881 mathbi-armd (loatmgpoinl o^jjroreaaor (optional)
direct extension of fill] 68020 uuflsucfion act
full suppot IEEE P7S4. draft 100
tranzoBToicrtlal and olher aocmifi c malh fuocumu
2 Magabytc of SIP RAM (312 i 32 bit caganization)
up to 256K byte* of EPSOM (64 i. 32 bita)
4 AjynchjonouJ achal I/O porta flandard
c^tiana! to 20 aerial ports
aiandatd RS-232 interface
optional network interface
buffered 8 bit parallel pott (1/2 MC68230)
Ccntrrauca type pinout
expanaiofi cartnoctor far 1/0 dovricot
I6bitditi pith
256 byte addresa tpacs
2 mtorupi inpiu
clock and control xigTiiU
Motcrola t/O Qianncl Modules
lime of day clock/cal aidar w/baucry backup
eaiunllcr for 2, 5 1/4* floppy disk diivc*
single of double aide, tingle or double dentil y
35 to 80 track •elccuhls (48.96 TF1)
SAS1 inlcrfaco
programmable periodic interrupt gcnaaior
inlcrrupt rata Cram raicrr>iecand» Loaeconos
Highly accurate time base (5 PPM)
5 bit acme switch, readable by the CPU
Hardware autgle-rtep capability
ItietDhiiraaad 68020 ayalenu an pre* cully working at NASA, Atomic Energy Cacnmuvton.
Goverron ail Agencies as well as Uruvcmuea. Susinou. Laba. and other Criucal Application!
Centers, wcntdwide. where speed , mlth cruncliing and cnulu -uicr. mulu. tasking UNI X C level
V compaubllity and low cost is a minx
Don't be mislead!
ONLY Data-Corn p
delivers the Super
SfVSTANG-020
Only the "PRO" Version
of OS-9 Supported!
This is HEAVY DUTY
Country!
Fori isTtrM ilnwin wii oftw a *400 tiaoa-gi on youTH
oldooXXXSaC Must b* wnrKa^g propMrr and "
L-BrTiT(ait» wnh a1 aortwara. ubust and ooainrnmtMm ,
Can for mom information
Price List:
Mustang.420 SRC
J249O.0O
Cabinet w/swuching PS
J299.9J
5* 80 track noppy DS/DD
J269 95
Roppy Cable
$39 95
OS 9 68K Ptofcsnooil Version
$850.00
CCompilcrtJJOO Value)
N/C
Winchester Cable
$39 95
Wtncheeier Drive 25 Mbyte
$895.00
Haul Dui Coo trailer
$39500
Shipping USA UPS
$7J0O
UniFLEX
Una
$100.00
MC6888! 1/p mslh prorew
Add
$27501)
1667 Mhi MC68020
$375.00
16.67 Mhz MC6888]
$375.00
20 Mhz MC68020 Sya
$750.00
Note all 6888) craps wok with 20 M)iz Sya
Total:
$5299 80
NEW LOWER PRICES
25 Mbyte HD $3299311 $3749.80
85 Mbyte HD $524&gH $4548.80
f
Note: Only Professional OS-9 Now Available
(68020 Version) Includes ($500) C Compiler -
68020 A 68881 Supponcd - For UPGRADES
Write or Call for Professional OS-9 Upgrade Kit
Data-Comp Division
A Decade of Quality Service"
Tj V^ ~nSBr*' ' Systems World-Wide
Computer Publishing, Inc. 5900 Cassandra Smith Road
Teteprtooe 615 842-4601 - Telex 510 600-6630 Hixson, Tn 37343
68 rvfero Journal
April '89
A Member of the CPI Family
68 Micro
Journal
10 Years of Dedication to Motorola CPU Users
6800 6809 68000 68010 68020
The Originator of "DeskTop Publishing™"
Publisher
Don Williams Sr.
Executive Editor
Larry Williams
Production Manager
Tom Williams
Office Manager
Joyce Williams
Subscriptions
Cheryl Hodge
Contributing & Associate Editors
Ron Anderson Dr. E.M. "Bud" Pass
Ron Voigis Art Wellcr
Doug Lurie Dr. Theo Elbert
Ed Law & Hundreds More of Us
Software UscrNolcs
FORTH
Logically Speaking
LMac-Watch
FLEX Diagnostics - Disk Drive Test,
ROM Test, RAM Test 36 Korpi
Hit Bucket
"" Classifieds
68M1CROJQ
(^Contribute Nothing - Expect Nothing'
DMW 1986
D
m^T ^
r7 <rz-~. x-
COMPUTER
PUBLISHING, INC.
"Over a Decade of Service"
I'v-y <ic vifi].Lv^*^m>.
■World
Wide"
68 MICRO JOURNAL
Computer Publishing Center
5900 Cassandra Smith Road
I'O Box 84'i
Hixson, TN 37343
Phone (615) 842-4600 Teles 510 600-6630
Copyrighted © 1987 by Computer Publishing. Inc.
68 M icro Journal is the original" DeskTop Publishing" product and lias
conlinously published since 1978 using only micro-computers and
special "DeskTop" software. Using first a kit built 6800 micro-corn
puicr, a modified "ball" typewriter, and "home grown" DeskTop Pub
lulling software. None was commercially available at that lime. For
over 10 years we have been doing "DeskTop Publishing"! We angi
noted what has become traditional "DeskTop Publishing " f Today 68
Micro Journal is acknowledged as the "Grandfather" of "DeskTop Pub-
lishing" technology.
68 Micro Journal (ISSN 0194-5025) is published 12 times a year by
Computer Publishing Inc. Second Class Postage paid at Hixson. TN.
and additional entries. POSTMASTER: send address changes to 68
Micro Journal. POB 849. Hixson. TN 37343.
Subscription Rates
1 Year $24.50 USA, Canada & Mexico $34.00 a year.
Oihers add $12.00 a year surface, $48.00 a year Airmail, USA
funds. 2 years $42.50, 3 years $64.50 plus additional postage
for each additional year.
Items or Articles for Publication
Anicics submitted for publication must include authors name, ad
dress, telephone number, dale and a statement that the material is
original and the property of the author. Articles submitted should be
on diskette. OS-9, SK»DOS, FLEX. Macintosh or MS-DOS. All
printed items should be dark type and satisfactory for pholo-rcproduc
tion. No blue ink! No hand written articles - please! Diagrams o.k.
Please -do not fo mat withspacesany text indents, ch rts. etc. (source
listing o.k.).Wewi edit in all for matting Text should fa I flush left and
use a carriage return only to indicate a paragraph end. Please write
for free authors guide.
Letters & Advertising Copy
Letters to the Editor should be theoriginal copy, signed! lyeuers of grip
as well as praise are acceptable. We reserve the ighl to reject any letter
or advertising material, for any reason we deem advisable. Advert is
ing Rales: Commercial please contact 68 Micro Journal Advertising
Department. Classified advertising must be non-commercial. Mini-
mum of $15.50 for first IS words. Add $.60 per word thereafter. No
classifieds accepted by telephone.
April '69
66 Mcro Journal
r
JUST
*\
PAT t
With 'C Source
$229.00
stemni!
FiSaiDnM
A Division of
I
y^
Media
5900 Cu usiki Smith Rd
Hiuoa. Tn 37343
TckrttoM 613 842-4809
Tck>310 6OO-6<3Q
I14M2I
^
PAT FROM S. E. MEDIA » A FULL FEATURED SCREEN ORIENTED TEXT EDITOR
with all the best of PIE. For those who swore by and loved PIE, this is for YOU! All PIE
features & much more! Too many features to list. And if you don't like ours, change or add
your own. C source included. Easily configured to your CRT terminal, with special configuration
section. No sweat!
68008 - 68000 - 68010 - 68020 OS-9 68K $229.00
COMBO
Special $249.00
JUST
JUST from S. E. MEDIA - - Text formatter written by Ron Anderson; for dot matrix
printers, provides many unique features. Output formatted to the display. User con-
figurable for adapting to other printers. Comes set-up for Epson MX80 with Graflex. Up
to 10 imbedded printer control commands. Compensates for double width printing.
Includes normal line width, page numbering, margin, indent, paragraph, space, vertical
skip lines, page length, centering, fill, justification, etc. Use with PAT or any other text
editor. The ONLY stand alone text processor for the 68XXX OS-9 68K. that we have
seen. And at a very LOW PRICE! Order from: S.E. MEDIA - see catalog this issue.
68008 - 68000 - 68010 - 68020 OS-9 68K
^ With 'C source $79.95
J
68 Mcro Journal
April 69
©IL@
@ot ©iPi^^niiiL
SCULPTOR
From Hie world's oldest
& largest OS- 9 software house!
cits ric4K.ic\>nii\c- time up to 80%
6809/68000-68030 Save 90%
SCULPTOR-a 4GL ■ Only from S.E. Media at these prices. OS 9 levels one and two (three GIMIX) 6809,
all 68XXX OS-9 standard systems. Regular SCULPTOR versions 1.4:6. One of if not the most efficient
and easy to develope DBMS type systems running under OS-9. A system of llexible keyed lile access that
allows extremely fast record and data retrieval, insertion and deletion or other programmed modifica-
tions. Access by key or in ascending order, very fast. The system provides automatic menu generation,
compilation and report generation. Practically unlimited custom input format and report formatting. A
rich set of maintenance and repair utilities. An extremely efficient development environment that cuts
most programming approximately 80% in development and debugging! Portable, at source level, to MS-
DOS, UNIX and many other languages and systems.
Standard Version: 1.14:6 6809 - $1295.00
68000 $1295.00
68020 $1990.00
r
Due to a "Special One Time" Purchase, We Are
Making This Savings Offer. Quantities Limited!
Once this supply is gone the price goes back up!
System OS-9: 6809/68000-68030
• Regular s 12 9 5.00
ONLY
^
$ 99.95
S.E. MEDIA
POB 849 5900 Cassandra Smith Road
HIXSON, TN 37343 61 5 842-4601
Telex 510 600-6630 FAX (615)842-7990
AVE - WHILE SUPPLIES LAST!
April '69
68 Micro Journal
%i$) 842-4600 Sou tfi "Las t Media
Tefex; 510b00hbA0
OS-9, 'Um'JCEX, 'JCLX, S%*DQS
'/a*: ($15)842-7990
Sculptor
Full OEM & Dealer Discounts Available!
n^ soi; n i. ik v.k mm
a ■**** tjn ht to tiara*) null In* horn
rut package
AN ESTABLISHED LEADEfl
afta
pMooli
rappr*! prwralo'
dtHfyMHuv
J evp* mitv h* chfwm
■ni chm, math laadbarh (rcmr* an nr wcti— nj tuitoflw
baa*. Sculptor Kim bam rrtnad and mhwcWl no bacorTW
<**<Atw itMBU riwawhif int. f^afauwafl rabbi* -vilrrttt
M ih* Najajl anJ*v
SYSTEM EMJEPENDCNCE
Scutpani ■ ruaahl run many dtfhftfw rrm-hirwi arid a*
mtfaOltlft^PfftoM, ingtrirM WS IX rv Unii.lUnujimli
VMS th mfti rt w b* ■.* wmwaanJ hmhuwtinafi hm
*nwlp«rHfliJC4'npvWft, * ,h3 »"J h rtluta - ™« wan™ 141*1
larga flwand maaniranMii Snip** an tta
Far nt
Facts
DATA DICTIONARY
Ejk h Ur may hiw on* at iwh m (*J
Ivpr* ijWk rrbrd I '*fkk may haw» •
hwtx- -rwaclvu fvp<
vaJh UtW<n fcu F uLd |
bom
HIMI
fltMtr-ny [mMitl
_, DATA RLE STRUCTURE
■ ■■■■■■■ : ! Mrrfi^th¥tfdmkniv*4('iji9vnfvi* l «
■■■■■■■■■■■■■■■■ ! ! Dam****!** inl*g« nl*» »Mir**n
INE»E XING TECHNIQUE
Sc utpscir trauma*** B Br* ndn *►*
**f H tlttl Nr ftt^Mfi V4C 4* ■**> *flry
rHJmb*TI 1 J nJltfTEuiBuc lr*W *<^ Irn ru-
coded tn*o ow ctftw At
INPUT DATA VALIDATION
input rial* m#y hi v**ii*hr>f n *»**
RELATIONAL OPERATORS
fatal lo
UwituJi
L«h than 01 equal u
Gaataaf than en *nuaJ * 1
Nunmiwlm
I (JflUKl*
nraalasa*
ARITHMETIC OPERATORS
Untiui
SPECIAL FEATURI*
l: 1 .iii. 1
APPLICATION PORTAB1I ITY
PRVHM
Sculptor for 68020
OS-9 & UniFLEX
$995
nwn Scjpd.t w
Vatican'
-njPlhfiiionilar^myftvtfcri-fi^ifHi F™
fun a%#r baler* ■ ■ ** tyarm
MMhrnoh *pp»ddrv*iwi
pyp Aral ■
SPEED AND EFFICIENCY
Sculptor una* a lariand prwoi md*ung MhrKM wrfMrb
SoA** * him* frrmtfr* ■ <w»v9> 1* ««pM *>*
compact iimiiiwirnn fed* *ha-h **#nja« »** bnnHR
ISTERNATTONALLY ACCEPTED
By <W*Q * Mmpk HTt*if^m*fli wi 1. aim.'. V u^* » <«n iwvwdl
V*<nlrwla#>OMa||f»rKltipmi*MK«y»Mjr» V wF Th*n
■bnU thaAnwvdAM^'ll utt^jw
nxwttPT *Kh* i»*iiW Amn.
- SnJpfcn * ahvadv at «™*
ftrniaar*arf
Addnon
r \
cS
L^
\ jrf JSjjii*-
I f rsi
^^
tii
1 ^^^
MAXIMA AND MINIMA
Mirtimum Wv t™jfrh 1 1
Miumum k#v bri-Hjcfi :. '* 1 b
Marumum wt nfd L*yth 3 b
Haurmim fpcok! t#n^h Ji?767 b
HfltlrTMiiim rwlihfMTfri.mJ JT7fc7
MulrtHfm rn™h prr Mt lb mi
Munurn Urt p#r ptripam I f >
Uuffvtaia^-
. Krt if^Uri Ut
! RvtiuJd ht*J*»
AJwr l*i»qi>agr *rn ! ii»w ii kumI
PROGRAMS
. CrrjBhrtwtii mdnHfraV
■ tnWrff*tr lUnMKiwn fcwm
rm-^am
' {WiwraM tunlard wpon rtiafarn
' CnjAa^aV *mwi lo*m pfi*a"ans
Ci ifnpaV tvpLai (mj^rwn
: Kapnrt-pm^wnKnhrTWrlrr
SCREEN FORM LANGUAGE
: [VmJunrnnwT , |rtr*[ il*»n an. 5
H*jhlj4r ranijfirtt atii
[W4autl *.rt {*i4att*rwi
c« rpoofi eondHLim
: Primrttul «rrti* -a* ifinji ,V(^nl
PalAKMH
: imubafi*xT» Jnf^ts 11* munjib
Fadfefy lo«l a^9 f*»^»m*4ntl
(wraAng Maawi rnfnmflBidk
: r t «iJffliwwJi*a*rTTwr«h
• Irwfa ptfraVi j <J awnwnal Mpr
r"
MUSTANG-020 U»rs - Ask For Your Special DLscount!
n
MUSTANG-020
*$1.990 $398 $795
*$1,295 $259 $495
PC/XT/ AT/MSDOS $695 $139 $299
L
MUSTANG-08 "$ 1.295 $259 $495 Call or write for prices on the following systems.
XENIX SYS III ft V. MS-NET. UNIX SYS III & V. ATARI OS 9. 68K. UNOS. ULTKIX/VMS (VAX. REGAL). STKIOE. ALTOS, AI'KICORT, AKETE. AilM
STRONG. BLEASDALE. CIIA«1>;S I0VEKS. GMX. CONVERGTECH. DEC. CIKER. EQUINOX. GOULD. III'. HONEYWELL. IliM. INTEL. MEGADATA.
MOTOROLA. NCR. NIXDOKJ''. N.STAR. OUVETH/AT&T, ICL. I»ERKINS EIJUEK. i'HILLll'S. HXEL. I'LESSEY. MJCXUS. ItJSlniON. PRIME. SEOUEYI
SIEMENS. SWTPC. SYSTIME. TANDY. lORCli. UNISYS. ZYLOG. E1C.
* For SFKCIAI. M1W SCLIJTWH prlcivs csocvially for BSOB^riKXXX <IS-» Syswms • St-c Spe-
cial \d thiw Iwuc. Itt'm«*mb«*r, M When they art* ifont* lht> prltn* ^m". bat*k up a** :ilio% <■:"
... Sculptor Will Run On Over 100 Other Types of Machines ...
... Call for Pricing ...
!!! Please Specify Your Make of Computer and Operating System !!!
J
* Full Devdopement Package
•• Run Time Only
*** C Key CTIc library
AOlltWIK} Ltfiolb
O • OS-*, S ■ SK-DOS
r . FLO, . UOIED
CO . Ctfor Ca^Hiw OS-*
CO> . Oaior O m fut tr KLtl
South Tost 'Media
$900 Cnssambu Smith 3fo£ - Jftat on, Tn. 3 7343
Ttltpfvmt: (61$) 842-4&0 TtlvQ 5106WC&0
•• Shipping ** ..
KU J» MSA. (ml» X1J0
Rnlp Serfca Add 5*
For«ltli Alraull Add !«•
Or CAA SKlppinj On*/
*Q5.* Ii ■ Tr»dwwt rf Mkrowri Hid Motenib-'KLIX .Bd UoH.m f « I r»«ttrmkJ J lichnkJl Sy*» CormdMB-'ilCDOS \s % 1>«dMimt «f »ir.K Saltwm S^^n. I jiry.
68 Micro Journal
April '89
The C Programmers
Reference Source.
Always Right On Target!
C User Notes
A Tutorial Series
By: Dr. E. M. Bud" Pass
1454 Laua lane N.W.
Conyers,GA30207
404 483-1717/4570
Computer Systems Consultants
INTRODUCTION
This chaplcr begins with a siatcmcnt by Dennis Ritchie concern-
ing the ANSI C standards committee. He placed il on USENET,
with the usual disclaimer that the opinions expressed arc his, and
not those or his employer. Il is reprinted here verbatim, without
editing. For those who do not recognize the name, he is the "R"
of"K"and"R".
For the tenth anniversary of the original publication of the K &
R book on the C language, there is a new edition, encompassing
the new fcalurcswhich have been added to the language in the last
ten years. Although i tat tempts tocovcr the new ANSI C standard,
be aware that the standard is still changing and some features
noted in the book have been deleted from the standard. This
includes the "noalias" keyword. The "volatile" keyword may
also be modified in meaning before the standard is finalized.
Following the siatcmcnt by Ritchie arc commentaries (also from
USENET) by others concerning various aspects of the C lan-
guage. Their arguments show that the C language definition
needs additional specification in several areas.
The example program produces text suitable for input to a text
processor, such as nro, from plain text not containing the neces-
sary commands.
EVALUATING ANSI C . Dennis Ritchie
Since the subject has come up, this is a good time to record
my thoughts on ANSI C and the work that X3J 1 1 has done. In
brief, 1 think the result is commendable. I concur in the belief
of those who watch such things that X3J1 1 managed to
improve on what they started with, and that this is an unusual
accomplishment for a large committee that lasts for 5 years or
so. In particular, they successfully resisted the usually inexo-
rable pressure to add features and options.
The committee had ccitain explicit goals, among them to bring
tlic language specification up to date with reality, since much had
changed in the 10 years since thcoriginaldclimtion; to add a very
few things deemed necessary (function prototypes); and to spec-
ify things more completely than K&R did. They also wanted to
standardize the library, something that has become important not
only because the drift in the System V vs. BSD worlds, but even
more because of the vastly increased use of C on non-Unix
systems.
Perhaps as importantas all the rest was a goal that was not stated
explicitly, namely to supply the stability, legitimacy and gcncial
cachet that is possible only with all the legalities required to gel
the result accepted as an Official Standard by the appropriate
Official Bodies. The need for this can be questioned, but the fact
that many people want il to happen, and that it lends to occur
regardless of desires, can't be denied.
I have only a few worries about the specification of ihc language.
First, the introduction of the new function declaration mecha-
nism. The new scheme is belter than the old, bul the change is
going to cause trouble, and the need lo accommodate both ways
confuses Ihc language specification and will confuse users. 1
made my peace with the change some years ago; il is better to do
il than not.
Second, 1 don't think type qualifiers have been fully digested. 1
never did object very strongly to volatile, even though I maintain
that il is not onerous to live without it. The remaining qualifier,
const, suffers from tension between conflicting views of what il
is supposed to mean. One possible view is ihat const things arc
real constants. If il prevailed, then one would expect that things
of type const could appear where constants arc expected (case
labels and so forth). Perhaps even the notion of pointer inconstant
would become suspect. This was not the view thai ihc committee
eventually adopted, although (perhaps unconscious) sentiment
for it remains; instead, a more implementation-minded approach
was taken, namely lhal const means something that can be put in
ROM (hardware or writc-protcctcd memory). Nevertheless, the
tension remains, and figured heavily in the committee's argu-
ments over seemingly unrelated things (including noalias). Even
now, questions of whether a pointer lo const can be assigned to
an ordinary pointer, or whether these two types arc compatible
(and when compatibility mailers) arc lively issues. Il is clear lhat
the rulcson qualifiers arc to some extent artificial — they could be
decided in several ways. Good rules arc not arbitrary, they arc
forced by the logic of Ihc design.
April 89
68 Micro Journal
Some of the things Utat people arc complaining about were
completely necessary, in particular ihc insistence that only a
fixed set of library routines is defined, that initial _ is reserved for
the implementation, and Utat all other names arc reserved for the
user. It is just not possible to write a standaid that perm its the im-
plementation to intrude into Ihc user's name space (by letting it
define names internal to its library that the user might use by
accident), or to give a defined, standard way for the user to
replace system routines. Ihc latter would constrain implementa-
tions loo much. At the same lime, the consequences of such rules
ate misunderstood. A program that calls "read" is not defined by
the standard, but I assure you that the supplier of your Unix
system will arrange that it works.
X3JI I did miss some opportunities. Perhaps the most obvious
lack in the language isa scheme for variadic arrays. However, ihc
proposals 1 have seen arc awkward and don't fit smoothly, so it
is not sui prising that nothing was done.
Another thing that must await the future is a genuine rethinking
of integer arithmetic, not just the fiddles thai they uid.
All in all, I think X3J11 did an excellent Job. When they began,
several years ago, I was somewhat apprehensive about what
would result, but also decided ihat I did not have the stamina to
become involved in their activities; 1 would have to irust their
good sense. I have never regretted the decision, and I'm pleased
with the outcome.
Whether this value implies wriiability is a random parameter,
hence the variable nature of the bug. The comma is now a com ma
operator, since it is outside the function brackets. Assignment
takes precedence over the comma operator, so Ipfd is indeed
assigned the return value from openO. but this entire assignment
now constitutes the left side of a comma expression, so it is the
valucofO_WRONLY that is compared against 0!O_WRONLY
is 6efined as a positive constant, so the test always fails and
attempted execution of the wriicO becomes inevitable.
The lint program did not report an argument count cnor for
opcnO It so happens that openO is one of the few system calls thai
can take a variable number of arguments (depending in Ihis case
on whether the 0_CREAT flag is included in the second argu-
ment). Hence lint's argument count check is suppressed by the /
"VARARGS2*/ modifier in llib-lc.
It look them a very long time to find the problem, as could be
imagined.
He noted that C's overloading of certain operators (in this case,
the lowly comma) increases the probability that an erroneous
code fragment will be legally inter prciablc, a situation somewhat
analogous to having too many words in a spellchccking diction-
ary. This lead directly to the compiler not locating the logic error,
since ii was not considered a syntax error
GOTOS FURTHER DEBATED
OVERLOADING C OPERATORS
Ihc following commentary is due to Frank Byrum of
BROOKS Financial Systems, Inc.
They recently experienced an exceptionally insidious error in
their production code, which was causing sporadic write failures
oncxecution. This error successfully eluded detection by a DOS
compiler as well as by a full liming under Unix System V Release
3.
The intent was to have the following C code:
if ((Ipfd* op«n(print«r_»t ring (PORT) , 0_WROKLY) » < 0)
(fatal trior Mingi) ...
writ* (lpfd ) ;
In English, if the return value from opcn()ing ihc primer as
assigned to Ipfd is not a valid file descriptor, quit; else use it
Unfortunately, what was actually coded was the following:
if ((Ipfd - op«n(pi:int«r_»tring(POB»)), 0_«ROMLY) < 0)
(fatal «croc maaaaga) ...
writ* (Ipfd ) ;
Take careful notice of the change in parenthesizing. These
statements constitute perfecily legal C. Notice first that openO is
called wiih an insufficient number of arguments. The stream's
status will be based on a random value taken from the stack!
The following section was written by William Wells of Proxim-
ity Technology of Fort Lauderdale. Florida. As usual, his opin-
ions arc his own, not his employer's.
Under ordinary circumstances, there is exactly one place where
a human C coder might use a goto. Ihis is to implement multi-
level breaks and continues.
I say this, having managed (and wi iticn huge chunks of) a 1 7,000
line software system (and that is only the part we sell, and docs
not include development tools). 1 have programmed inC for six
years now and have NEVER used a goto. We have uncounted
megabytes of C code written in-house. None of it (to my knowl-
edge) contains a goto. Ihc closest thing we have to a goto is
setjmp/longjmp, used to implement a multi-level return (and that
is a recent change, one whose contemplation caused much
debate).
With that aside, let mc explain why the goto discussion is really
fruitless. People have observed that gotos arc used in a lot of bad
code. From this it is concluded ihat gotos are bad. This is really
bad logic. Try this: programmers have baenobscrved to write bad
code: therefore, programmers arc bad!
There is nothing wrong with goto. How do I reconcile wilh my
stale menis above? Wait and see... The thing Utat is wrong is the
control structures being implemented with the gotos.
68 Micro Journal
April -69
The whole point of the structured programming debate is this:
every program has a control structure; some of these control
structures arc better than others. Whether you use golos or some
other language feature to implement the control structure docs
not change what the control structure is nor does it affect the
goodness of the control structure.
Thcqualilyofyour program is strongly influenced by the quality
of its control structures. Furthcimorc, you want that control
structure to be obvious and understandable to the reader of the
program. This implies that you use language features that make
your use of a control structure obvious.
So, the first question should be: what arc the good control
structures?
The second question should be: given a particular language, how
should the control structures be implemented?
Ok, so what makes a control structure good? Well, the basic
answers are: a control structure is good if it is
1 ) appropriate to solving problems.
2) easy to write.
3) easy to understand.
4) easy w maintain.
5) ... add your own as long as they
do not contradict the above.
There arc obviously lots of control structures that meet these
requirements and you do not have to use all of them. In fact, you
should pick a set of those which are most appropriate for your
programming environment and use them. This set should be, in
somesense, a minimum one; for example, if you ha vetwoconirol
struc lures wh ich can accomplish the same thing, bulonc is easier
to use than the other (for you), pick the easier one and forget the
other. All other things being equal, a smaller number of control
structures helps make your program easier to understand.
Now, I hope my claim about our C programs is understandable.
But if not, here is what it amounts to: I have chosen a set of control
structures which isappropriatc to programming in C, for the kind
of programming tasks that I do. It happens that, while my set of
control structures includes multi-level breaks and continues
(which would be implemented w itha goto), I have never had need
of one. Given the amount of code I write, it seems to me that one
might never need to use an explicit goto in C code.
Now that I think of it, here is a reason to avoid naked gotos in C
code: for all other constructs, the control structure being imple-
mented is obvious from the keywords employed. This is not true
for goto. Therefore, supposing that you have found a control
structure that you have to implement using golos in C, you should
dress the goto up. As an example, suppose that you arc using the
state machine control structure.
I normally code it as the following:
state = STATB_INIT;
while (atate >- STATE_DONE)
(
switch (atata)
(
cut STATE INIT:
1
However, this is not the most efficient way to do it. You could
also implement it as the following:
I* Wherever you see the macros stale and ncxlsialc being used,
you will be seeing a stale machine. The stale macro defines the
start of a state. The ncxlsiate macio causes a transfer of control
to another stale of the same machine. A slate machine statts at a
6cfinc of slatcpref and ends with slatc(DONE). */
6e£ina dummy <x) x
6efine atata (x)
£efine nextst&te. (x)
4fdef statapraf
Ondef atatapraf
lndif
6efina atatapraf
dummy (atatapraf) x
goto dummy ( atatapraf )x
STATE
state (INIT) :
(coda for thia atata)
naxtatata (DONE) ;
(mora atataa with appropriate code)
atata (DONE) :
(coda after atate machine)
I am aware that not all preprocessors will do what I want here; for
real portability, you would explicitly write the prefixes. Also, this
method fails for nested slate machines, something I have occa-
sionally had need of.
Somcof you will no doubt be thinking: but why should I go to all
this effort when I could just use the goto directly? Well, if this was
all you did with goto, I don't really see any reason why not (but
I do think your program should include a comment saying that
you use goto for state machines and describes how you structure
it). If, however, you have more than one way of using goto, you
should clothe the golos somehow so that the reader of the
program knows what control structure your goto belongs to.
After all, a while is just a disguised goto.
WHITE-SPACE IN C SYNTAX
Almost without exception, white-space may be included or
excluded from C programs without affecting the logic of the
program. The obvious exceptions arc within quoted strings,
identifiers, keywords, numbers, and multi-character symbols,
where while-space may not be included without splittingonc unit
into two.
April 89
68 Micro Journal
A problem in some of ihc earliest C compilers, which is described
in the original K A R book as bcingan anachronism, was ihe older
form of Ihc binary-opcrator/assignment statement. Rather than
being coded as i -= 1, it was coded as i =- 1. leading to the
possibility of an ambiguity if the spaces were removed, since i=-
1 could represent a binary-opcrator/assignment statement or an
assignment siatcmcnt. U nfortunatcly . some of the curren tC com-
pilers accept ihis syntax, cither silently or with warnings.
Certain implementations of the C language, especially older
ones, had dependencies and peculiarities which made white-
space significant in unexpected contexts.
Forexamplc, one C compiler required no white-space between an
array name and ihc open bracket introducing the first airay
dimension. This situation generated only syntax errors and some
grumbling on the pait of the programmers attempting to use the
compiler.
AnothcrC compiler required no white-space between a function
name and the open parenthesis introducing the function argu-
ments. Again, this was primarily a nuisance.
The same C compiler required no white-space between a par-
ametric define name and the open paicnthcsis introducing its
arguments. Unfortunately, if it found no adjacent open parenthe-
sis, it assumed that the arguments were all null and expanded the
define. Then, it encountered the open parenthesis and evaluated
the arguments of the define as expressions separated by comma
operators. If the programmer were lucky, the compiler generated
a syntax error. However, in many cases, ihc compiler silently
generated incorrect code because it mis-inicrprcicd Ihc state-
ment.
C compilers confoiming to the ANSI C standard must ireat
comments syntactically as white-space. Many older compilers,
and several current ones, treat comments as if they were not
present. The difference is probably academic, but may cause
minor portability difficulties.
There is one ambiguity in the C language definition which has
been present since essentially the beginning and continues into
the ANSI C standard. If a divide operator is immediately fol-
lowed by the asterisk of a dereferencing pointer operation, the
result will be indistinguishable from the "/*" multi-character
symbol introducing a comment. This will cause a problem in any
C program containing this sequence, but it will be exceptionally
severe with current C compilers which do not support nested
comments, as Ihc resulting comment will encompass all code up
to and including the next comment.
Ine easiest manner in which to avoid most ambiguity is to use
white-space liberally. This assists both the human and the com-
puicr in interpreting the program correctly.
C PROBLEM
Following is a puzzle on unsigned promotions, posed by Sieve
Friedl of V-Systcms, Inc. It illustrates a portability issue with sign
extension.
Can any of you help with a puzzle? I've been trying to understand
the unsigned vs value pcrscrving rules of various C compilers.
and I 'm afraid I ' ve run into acasc 1 don't understand. I have pored
over the dpANS on this but am still confused.
Note that this question applies to all compilers, not just dsANSI
ones.
Oxffff
/* what la printed? V
6a fin* HXNDS_ONE
main ()
(
unaignad ahort aval;
long lvall, lval2;
aval - HINOS_OHE;
lvall - - aval;
lval2 - - (unalgnad abort) HINDSONE;
prlntf <"lval 1 - 71d 2 - Tldn", lvall, lval2> ;
I
Tba normal anawar I gat la:
lval 1 - -65535 2 - -65535
but on the HP9000 I *•• :
lval 1-1 2 - .65535
For what it's worih. the HFXXX) has sizcof(short) = 2 and
sizeof(int) ■ 4, and 1 get Ihc same results when I 6efinc
MINUS.ONE to be (-1) or Oxffff.
My specific questions:
(1) is this a case of questionable
unsigned-ness?
(2) if 1 have a vendor who asserts "this is
a valuc-picscrving compiler", what is the necessary value of
"lval"?
(3) if 1 have a vendor who assens "ihis is
a unsigned-preserving compiler",
what is the necessary value of "lval"?
(4) if 1 have a vendor who asserts "this is
a dpANS-conformani" compiler",
what is the necessary value of "lval"?
68 Mtoo Journal
April 89
EXAMPLE C PROGRAM
Following is this monih's example C program; it converts text files toa simple nro format It assumes that text begins in the fii« column
and lhai nontext (tables, etc.) begins in other than ihc first column. By changing the commands somewhat, the program could be modi-
fied to output commands for another text processor.
4ncluda <»tdlo.h>
4ncluda <ctyp«.h>
char *p;
char string [2S6] ;
lnt 1;
lnt n
lnt a
lnt t
main (argc, argv)
lnt argc;
char *argv[ ] ;
(
whlla (fgata(atrlng, 256, atdln) )
(
If <*«trlng > ' ')
<
If (1)
1 - 0, fputa (".fin", atdout) ;
If (t)
t • 0. f put a (". In On*, atdout)
If (a)
prlntfC.ap Sdn", a), a - 0;
fputa (string, atdout) ;
• !■•
for <p » atrlng, n - 0;
laspaca(*p); ++p, ++n) ;
If t*p)
<
if on
1-1, fputa (~ .nfn", atdout)
If (t !- n)
printf (".in 8dn". t * n) ;
If (a)
prlntfC.ap Sdn", •).»■= 0;
fputa (p, atdout);
»
FOR THOSE WJ
HMHhl I) TO KNOW
68 MICRO
JOURNAL
TM
10
April 89
68 Micro Journal
SOFTWARE
A Tutorial Series
By : Ronald W Anderson
3540 S turbridge Court
Ann Arbor, MI 48105
USER
From Basic Assembler to HLL's
NOTES
Centcolmnal
This is my lOOlh column,
though not all 100 have appeared
In 68 Micro Journal. Way back
when. 1 started out to publish a
newsletter, advertised in "Kilo-
baud Microcomputing" via letter. I
had printed, duplicated and dis-
tributed 8 newsletters when Don
Williams phoned one evening to
ask if I would like to switch to
writing a column for '68' Micro. I
said that would be fine, but I had
committed myself to ^newslet-
ters, and had collected a small fee
that would Just about cover cost
of duplication and mailing. Don
said that he would send four
Issues of '68' to my list of about
25 Initial subscribers to fulfill my
obligation. Of course, my "col-
umn" was then read by a few
thousand hobbyists rather than
just 25 of them. That means that
I have written some 92 columns
for 68 Micro Journal, and I've
missed more or less 4 limes
(Including two recently). That
means that It has been just about
8 years that I've been here In this
spot.
My early columns included a
lot of software listings, mostly
utilities for the 6800 FLEX09
operating system. When the 6809
came along. I did the same for
that. 1 had little choice, since
there really wasn't much to talk
about In software available for
those early microcomputers.
Technical Systems Consultants
had an ad very early in Kilobaud,
selling some little games that
would run on a KIM-1 board with
terminal attached. The games
were fun but truly primitive by
today's standards. There was
HANGMAN, of course, and RE-
VERSE in which you tried to
order ten digits that had been
randomized by reversing some
fraction of them from a given
position on to the end. The KIM-1
was a 6502 based single board
computer with 256 BYIES of
RAM. Before the addition of extra
memory and a terminal it ran
little games on its 6 seven seg-
ment LED displays. It had a
keypad with which you could
explore memory or enter pro-
grams a byte at a time. Programs
could be saved to audio tape and
loaded from it as well. There was
a KIM-1 newsletter in which were
published little games, such as a
horse race in which the three
horizontal bars of the seven
segment displays were illumi-
nated In turn advancing from left
to right based on a random
number generator. The ilrst one
to make it across the 6 digits was.
of course, the winning horse.
Eventually 1 found a Tiny Basic
for it. and attached a 4K memoiy
board, adapting its S-100 bus to
the KIM bus.
About January 1977 I or-
dered my Southwest Technical
Products 6800 box and a terminal
that consisted of a keyboard and
a logic circuit board that included
a character generator etc. I
attached an old television set and
the combination could be used as
a 40 column terminal! SWIPC
used a cassette as the software
medium at a whopping 300 baud
transfer rate. I remember starting
"16K BASIC" loading to the
computer and breaking for sup-
per. When I came back either
BASIC was running or I had an
error message and had to start
over again. TSC offered their
games In 6800 version and 1
bought those again. Then they
offered an assembler and a line
editor. I bought both (to save
money) in source code form and
typed in the HEX DUMP to get
them running. That was an
exercise in frustration, searching
for a wrong byte here and there in
the code until it all worked cor-
rectly. Later I typed in the source
code and got it assembled.
SWTPC had a printer to go with
the computer. You guessed it. it
68 Mkro Journal
April '89
11
printed 40 column on roughly 4
Inch wide "adding machine" tape
to match the 40 column display.
A year or so later. I bought a
genuine ADM-3A terminal (with
the option to allow both upper
and lower case), and then a pair
of 5 1/4 Inch disk drives which
came with a primitive disk operat-
ing system (that worked line. I
might add). Six months down the
road from then. SWTPC sent all
the customers who had bought
floppy disk systems a copy of
Mlnlllex. the first REAL operating
system for the 68XX processors. I
remember that they had stuck the
disk in the middle of their printed
manual and sent It In a 9 by 1 2
envelope which the mall man
nicely folded In half the long way.
to fit the mailbox. I improvised
and found that I could remove the
magnetic medium from the disk
Jacket by cutting one edge of the
jacket open. Then I did the same
with a good Jacket and moved the
lnsldes to that. I could then read
the disk and copy it to a good
disk and 1 was running Mlnifiex.
TSC offered their line editor EDIT
and their assembler ASMB again,
and this time I bought them on
disk. TSC supplied printed source
code. They did the same for their
text processor called simply PR. I
bought that as well. There was a
veiy early compiler by Jack
Hemmenway called Strubal
(STRUctured BAslc Language). I
can't say much more for It than to
say lhat It worked. I typed in a 6
or 7 page program and the com-
piler output overflowed memoiy!
(I had 32K at the time). Lucldata
itleased their 6800 Pascal Pcode
compiler that was many times
more efficient at code genera-
tion... (Not a knock for Hemmen-
way. Just progress happening).
Shortly. TSC came along with
their DEBUG program that let the
user single step through a pro-
gram, set break points, etc. I
wondered at the time how I had
ever debugged an assembler
program without It.
A year or two alter that I
upgraded by buying a 6809
processor board and a lot more
memory for the system. It origi-
nally had 16K but I had previ-
ously upgraded to 32K and now I
went to 48K and then 56K (the
maximum possible in that com-
puter system). FLEX09 came
along for the 6809 and went
through a few upgrades. Then
started the era of fast and furious
development in the area of soft-
ware. Lots of software was devel-
oped by hobbyists and then sold
through '68' Micro Journal and
other sources. If 1 am correct,
only Technical Systems Consult-
ants and Percom. and perhaps
SWTPC itself supplied soltware
that was specifically written with
profit in mind, at least early on.
There was TSC's original Text
Editor and Processor combination
(updated to 6809 FLEX version),
their Assembler, Lucldata's Pascal
compiler, followed by a couple of
"C compilers. The first, from a
little company that will remain
nameless, was a disaster. The
author was not a great program-
mer, but worse the company
hadn't the vaguest Idea how to
test software. There were so
many bugs that a program com-
piled under it seldom ran cor-
rectly. Later Wlndrush Microsys-
tems In England released a "C
compiler by James McCosh that
was as good as the earlier one
was bad. McCosh is a good
programmer, and Wlndrush
knows how to test software and
respond to bugs reported by
users. I still use that "C" now
and then when I fire up the 6809
system. It is. in fact a direct
ancestor of Mlcroware's present
OS9 68K "C* compiler. The folks
from Mlcroware might say that it
has come a long way since then,
and I'd agree heartily to that.
Other soltware that came from
that era was the PL9 compiler.
Stylo Text Editor. OmegaSoft
Pascal. PIE text editor, a couple of
implementations of FORTH, and
much more. About the end of the
6809 era I received a COBOL
compiler for evaluation. Just
about eveiy new piece of software
that came along (most or all of
them were written in Assembler)
showed a greater understanding
of how to program a 6809. The
compilers each generated better
and smaller code than their
predecessors. One peculiar
language came along that was
very good at doing things I don't
normally do in my programs and
terrible at doing things that I
usually do. I let someone else
review it and it got a fair write up.
Then, along came IBM with
their PC and PC -XT and the big
switch began. Many of the 6809
users remained loyal and we
wrote much of our own software,
but it became evident that there
would be no more commercial
software available for these
systems. I wrote PAT. an editor
which was about a year's worth of
spare time effort. I figure I've
probably cleared about a dollar
an hour for that effort, but it
wasn't done to get rich. I really
did it to prove that good software
could be written In a higher level
language (PL9). and that it could
be sufficiently small to leave a
reasonable edit buffer, and run
fast enough to be adequately
usable. I did end up coding about
3% of it in Assembler as
12
April 89
58 Merc Jounal
ASMPROCs In order to speed up
some veiy processor Intensive
operations such as string
searches.
(I am at the point now with
the 68000 systems when.- I was
back about a year after the 6809
came along. Software Is limited
but coming. I've managed to get
enough together to do whatever I
want to do. and I've filled in with
some "homemade" utilities In
assembler, all of which have been
published here at various times).
Somewhere along the era of
all the new software arriving for
the 6809. I began to slant the
column more toward program-
ming In higher level languages,
and in reviewing the various
offerings from the suppliers. I got
In deep trouble with a few readers
by saying once that I would choke
(or worse) if I saw yet another
COPY or DIRectoiy utility for the
6809 published. My comments
by pure coincidence appeared in
the column Just about the time a
reader sent me a disk with some
nice things on it, but including a
directory utility. The writer took
personal offense and didn't
believe that my comments were
not aimed at him specifically! I
got a veiy nasty letter and wrote a
couple letters of explanation
which must have been transferred
directly to the garbage, because
there was never another re-
sponse. (About then I thought
seriously about quitting this
column). With regard to the
comment about Copy or Directory
utilities, what I had in mind was
that computers had to serve some
useful purpose beyond allowing
their users to create more utility
programs for the operating sys-
tem. One "hacker" (I don't use
the term In any sort of derogatory
sense) wrote and told me that he
didn't intend ever to do anything
useful with his computer! I've
since adopted a similar attitude
toward the more typical computer
uses. I told someone that I would
quit my Job if I ever had to work
with or on Database software or a
Spreadsheet. I do appreciate the
value of such software and com-
puter uses, but they are not for
me. I am an Electrical Engineer
by education, and I Immediately
saw applications in the field of
instrumentation and control of
machines. It Is In that area where
my interests lie. So much for
histoiy except to note that the
name of this file is NOTES 100.
Since 1000 months Is 83 years
and 4 months. I'm sure I won't
have to shorten the name after
the 999th column!
As you may have noticed, I'm
back into hacking again, writing
new utilities for the 68000 and
SK'DOS. Should any of you
think that after ten or twelve
years, it must be a total breeze for
someone to write programs, let
me tell you about last night. A
couple of days ago I decided that
a rewrite of my text processor
JUST was long overdue. I first
wanted to set it up to read a
printer configuration file so that
the text processor software cold
be fixed and constant. The user
could then prepare his own
printer configuration file using
only printable characters to
represent the control sequences.
That turned out to be a relatively
easy one-evening plus, project.
Then I decided to tiy to clean up
some of the procedures, which
had "grown" from the initial "keep
It simple" concept to have fea-
tures added and more features
added. I was successful In getting
It to correctly center and right
Justify a line In double wide
printing mode, and decided that It
would be nice to fix it so It could
Justify a line with double wide
printing In it also.
Having done similar things
before. I made a careful backup of
what I had that worked correctly,
and set off to make the necessary
changes. That was about 9:00 In
the evening. Things went from
not working to still not working to
not working as well as before, to
total garbage. At one point. I
actually was printing out eveiy
other letter In the line with a
blank space between! Finally
about 1:30 AM, I conceded defeat
and threw away my new effort
and reloaded my backup. In the
four hours of effort. I had found
and fixed one bug. so I added the
fix to the original file. I guess I'll
stare at a listing and let that
project sit for a while. The time
was not wasted, since I now have
gotten back into the program and
have a much better feel for how I
had done it several years ago. A
rewrite will be based on what I
learned. My procedures were all
much too Interdependent. I'd
change one line and something
that ought to be totally unrelated
would no longer function prop-
erly.
When I was a lot younger
and living in Chicago. I had a
friend named Dick Nellsen. Dick
always had a "shortcut" to get
somewhere. Taking Dick's short-
cut usually resulted In getting lost
and taking twice as long to reach
the destination. Among Dick's
friends we began referring to
doing something the hard way as
a "Dick Nellsen Shortcut". Some-
times a poorly thought out short-
cut In tiying to write a program is
Just that. i.e. doing It the hard
way. When that happens. It is
usually best to think about the
problem a little more and then try
66 Mora Journal
April '69
13
again. I had a few good Ideas and
a couple of nights later I started
again and made at least some
progress. I now have a couple of
new versions of JUST both work-
ing and doing more than the old
one. but they are lacking In some
of the features that I want to add.
I am obviously too much of
the "start programming and get
something working, and then
clean it up later", school. I think
some programmers go too far In
the direction of getting It abso-
lutely light on paper and expect-
ing It to work on the first try. I've
said that there is a middle ground
that should result In minimum
overall programming and debug
time, and I observe that when 1
spend about equal amounts of
time programming and debug-
ging. I seem to get the Job done
fastest. I maintain that If I were
to spend three times as long
writing the program. I would have
about 1/3 as many bugs, so that
the program plus debug time
would be about 3 1/3 units.
Equal program and debug time
would add up to 2 time units.
Similarly. 1/2 the programming
time would result In 2 times as
much debug time, so that the
minimum is about wheie the
program and debug time are
equal. I realize that this is not
something that can be derived
mathematically nor proven rigor-
ously with logic propositions, (nor
for that matter anticipated before
the debug is done) but it would
seem to be verifiable by experi-
ence. If I find that I spent too
long debugging the last program, I
spend more time writing the next,
etc.
Based on my experience of
the other night. 1 conclude that I
didn't understand the problem
thoroughly enough to be able to
program well. In many Instances
when I write a program. I don't
know exactly what It has to do
until I take a good stab at it and
try It. Then what it has to do
sometimes becomes very obvious,
and turns out to be significantly
different from the original con-
cept. This Is particularly true in
the area of machine control and
instrumentation, though I am
sure it carries into other program-
ming areas as well. If the prob-
lem is REALLY spelled out well,
that is a different case, but I don't
believe that happens In practice
nearly as often as the theorists
would have us think.
Let me give you an example
of this. I have been working on a
word processor again, so I'll use
that. How do we read text from a
file with ragged right margin, not
necessarily with every line filled
as full as possible, and print it
out fully justified, i.e. each line
the same length (by Inserting
spaces in the line). A first ap-
proach might be to read charac-
ters from the Input file until you
have LENGTH characters. If you
come across a CR change It to a
space. Now back up through the
partial word at the end of the line
(If it Is partial) and past the space
that separates It from the previ-
ous word. Of course you count
the number of places backed up.
and then add that many spaces
within the line. You put a CR at
the end of the line and then print
It. (How you distribute the extra
spaces Is another problem we'll
assume you have solved). Now
move the partial word lelt over
from that line to the start of the
next line and repeat the process
until end of file.
If you do that, you will, of
course have run the whole file
together into one big paragraph.
Titles and headers are not part of
a paragraph. Of course you must
have a way to tell when a para-
graph has started and only treat
the text within a paragraph as
described above. Some authors of
text processors choose to make a
paragraph one long line. That is,
the editor is set up to handle
formatting on the screen without
any CRs In the text. That simpli-
fies the identification of a para-
graph, but the file is hard to list
using an ordinary list utility. I
chose to use a signal Inserted in
the text to mark the start of a
paragraph. ",p" all by Itself on a
line signals that a paragraph
starts on the next line. The end
of a paragraph Is detected by two
consecutive CRs (a blank line
after the end of the paragraph) or
another ,P signaling the start of a
new paragraph. When the para-
graph is ended, a partial line
might remain in the line buffer.
Of course it has to be printed too.
and It might as well not have
extra spaces In it since It will
probably not be a full line any-
way.
Do you see what I am getting
at? Unless you are an absolute
genius (or at least a lot smarter
than i). you won't think of all the
conditions and exceptions without
making a stab at a way to solve
the problem and tiylng it to see
what happens. Trying to write a
program that is correct the first
try is like trying to think up all
the conditions and exceptions
without trying what you have
done so far to see If It works.
More experienced programmers at
least think of how a process like
that described In the previous
paragraph must start and stop,
and perhaps they catch a few
14
Aprt'89
60 Micro Journal
more of the exceptions, but to tiy
to catch them all without "experi-
menting" would seem to me to be
a great waste of time.
Epson "Enhancement"?
A few months ago I saw an
add in Computer Shopper for a
new ROM to upgrade an Epson
MX-80 among other moaels. 1
have a veiy old one that still
works like new. I had upgraded It
a long time ago with GRAFTRAX.
the Epson upgrade, but of course
it still didn't have "NLQ" mode.
The ad for an upgrade kit called
"Dots-Perfect" indicated that the
upgrade would add letter quality
and control of printing mode via
the Online. Formfeed, and line-
feed buttons, more or less like the
newer Epsons.
I sent for the upgrade and It
has arrived. 1 followed the In-
structions and it all worked pretty
much as advertised on the first
try. but the "NLQ" looks pretty
bad. In fact not as good as just
printing in Emphasized mode as 1
had been doing with that printer
ever since 1 bought It. Certainly It
doesn't compare with the LX-800
in either of its NLQ modes In
which the characters look veiy
full and smooth even under a
magnifying glass. Vertical lines
are quite obviously zigzag. It
appears that the NLQ is achieved
by simply shilling the carriage
and overstriking,
The "upgrade" cost $69. In
my opinion. $20 would be more in
line with what It does, primarily
based on the poor NLQ. The
Epson MX-80 is capable of the
same graphics resolution as the
new LX-800. so there is no reason
that a better NLQ font couldn't be
done, other than, perhaps, lack of
ROM space for the font character
definitions. The upgrade does
allow selection of fonts and print
styles using the On Line.
Formfeed and Linefeed buttons as
advertised, and those are also
selectable via soltware compatible
with the latest Epson LX-800. It
even has a "small print" mode
that Is simply superscript mode,
condensed mode, and half line
feed all combined. That's nothing
you couldn't do on any Epson
with true half size superscripts
and subscripts under software
control. I suppose if 1 didn't know
how to write or configure word
processing software. I'd be more
Impressed.
In would think you'd be
better off spending that $70 as a
significant fraction of the cost of a
new Epson LX-800 or even a
Citizen 180-D which can be had
for around $170. It is a nice little
printer but Its NLQ is a little thin
compared to the LX-800.
CRASH!
1 just found a way to crash
my editor PAT. I'll mention It so
you can avoid it if you are a PAT
user. 1 accidentally typed ESC
A L. Of course ESC 65 A L would
set the line length to 65. but with
no parameter the line length was
set to 0. 1 didn't notice that, and
tried to format a paragraph to
zero width. The "BUSY" notice
came on. and stayed there until 1
ran out of memory, at which point
there was an error message and
an exit to the monitor. Of course
all my edit was lost. I'll trap the
no-parameter case and make it
not change the current line
length. Meanwhile, PAT users be
warned.
FOR THOSE WHO
68 MICRO
JOURNAL
TM
68 Mkro Journal
April SB
15
Forth
A Tutorial Series
By: R D Lurie
9 Linda Street
Leominister, MA 01453
OF-Link from Sardis Technologies
At last, a way to combine FLEX
and OS-9 Level II! Sardis Tech-
nologies has a real winner, here.
If you have been reluctant to
switch to the Color Computer and
OS-9 because of a heavy Invest-
ment In FLEX software. OF-Link
could be the answer to your
prayers. Now you can have all of
the advantages of OS-9 without
losing that hoard of FLEX soft-
ware you have accumulated over
the years.
I don't want to spend any time
going over the virtues of OS-9 vis-
a-vis FLEX, as I am sure that you
have heard enough to be tired of
that argument. Rather. I want to
describe my reaction to running
FLEX programs In this new
environment.
First, let me say that not every
program will work. 1 could not
find any software In my admit-
tedly small Inventory of "regular"
FLEX goodies which would not
run completely as expected under
OF-Llnk. However, the copy of
STYLOGRAPH which I use is the
one especially tailored to the
CoCo FLEX sold by South East
Media, and 1 was not able to
finagle the patches to make It run
under OF-Link. Similar troubles
would arise with any software
which does not use the standard
FLEX hooks. The instructions
which come with OF-Llnk give
help with some popular software
which has a problem, but this Is
still for "regular" FLEX programs.
There are stringent hardware
requirements, also. You must
have a CoCo3 with 512K of RAM
and two disk drives: otherwise,
you cannot Install the system.
However, once OF-Link has been
Installed, you then can manage
with only one drive, although it
will be inconvenient.
The reason that you MUST have
two drives is that you must Install
D. p. Johnson's SDISK3 before
you install OF-Link. Contact DP.
Johnson at 7655 SW Cedarcrest
St.. Portland. Oregon 97223. 1503)
244-8152. See D.P. Johnson's ad
on page 59. If you have a DMC
"no halt" disk controller from
Sardis. you have no problems,
since you already have SDISK3.
If. like me, you have a Tandy,
Dlsto. or other controller, then
you must separately obtain and
Install SDISK3. I followed this
route with both the original Tandy
controller and the Disto SCII. and
built a working system on
SSDD35 drives, so you can. loo.
Just follow the excellent direc-
tions exactly and literally, and
don't free-lance!
Once you have a working system,
you can use modpatch or the
public domain dmode to change
to any number of tracks you wish.
I easily converted from SSDD35 to
SSDD80 by way of dmode. Unfor-
tunately. I could not get any sort
of double-sided drives to work:
this may have been the result of
conflicts with my particular
hardware. Also. I could not get
more than 2 physical drives to
work, even though the manual
gave me the impression that I
could. However. I had no problem
with as many as 4 logical drives,
so this may not be a practical
limitation.
There is one "gotcha" which
comes lrom the peculiarities of
OS-9 record locking, and not from
OF-Llnk. In any case, each active
FLEX device window must have
its own virtual system file. In
other words. If you have 3 win-
dows running with FF9. you must
have 3 separate virtual system
files, one to support each device
window. I solved this "problem"
by having all but one of the
virtual windows contain only FF9
and the absolute minimum of
other files, such as FLEX. COR,
etc. Only one of the virtual system
files contains a full complement of
FLEX utilities. This saves physical
disk space. By naming the 3 files
(remember that these are really
OS-9 files In disguise) as fvl. fv2.
and fv3. 1 can call each one as I
setup /wl . /w2. and /w3. There
is a way around this problem of
record locking and it is described
In the manual: but the technique
I described above is the one rec-
ommended as being a lot safer
and saner!
16
April 89
68 Micro Journal
Be veiy careful when you start
sharing FLEX files, since It Is veiy
easy to mess up the links between
sectors and the free chain. If you
should have this sort of accident,
you are In for a real hassle recov-
ering from It. Be warned!!!
Utilities, etc.
Several very useful utilities are
Included with OF-Llnk which
make It easy to Install and use.
The ones I used the most, and I
expect everybody will have about
the same experience, are dpoke
and newcrc. Dpoke lets you
change an OS-9 file and newcrc
updates the crc without the ne-
cessity of explicitly moving that
file lrom and back to the disk.
There Is also a simple monitor
which will help In debugging
FLEX programs. Unfortunately,
this was not fully operational on
the review-copy of OF-Llnk which
I received, so I can't say more
than that It certainly looks good.
FF9 under OF-Llnk
So much for the preliminaries,
now for the Important stuff! !
I think that the first question
answered should be. "Why
bother?" Well, that Is the easiest
question to answer. With OF-
Llnk, you gain:
1. 80-column screen
2. windows
3. graphics
4. color
Ok. if OF-Llnk Is so good, what do
you lose? The only lost feature of
FF9 that I have been able to
Identify, so far. Is the direct
Interface to the machine. How-
ever, this Is a characteristic of
OS-9. and not solely of OF-Llnk. If
you use your FLEX software for
machine control, then you must
either choose between the great
conveniences of OF-Llnk and the
necessity for writing OS-9 device
drivers or go back to your old
system. No. I have not yet written
a successful device driver from
scratch — something I have to
learn. It may be possible to use
the OS-9 call F$MAPBLK, as Is
done in FOKTH09. but I have not
worked that out. either.
The 80-column screen Is a bigger
Improvement over the 5l-column
screen than I had ever expected.
As of now. 1 have put aside my
SS50 and separate terminal In
favor of the CoCo3. This. In my
not -so-humble opinion, alone Is
worth the cost of the software! I
may resurrect the SS50 at some
later date, but I can't Imagine
when or why that would be.
Windows let me have several
copies of FF9 going at once, so
that I can flick from one program
to another Just by pressing the
<CLEAR> key. Again. I am sure
that you have been Inundated
with praise for this feature of OS-
9. so I won't spend time on the
hard sell.
By graphics. I don't mean Just the
crude cartoons to the excellent art
that Is possible, but also the full
business and engineering-style
graphics that can be generated by
the lowly EMIT .
Color Is available, as expected.
The options and limitations nor-
mally available under RSDOS or
OS-9 are all there. If you have the
hardware, you can access them.
Melding FF9 to OF-Llnk
OF-Llnk gives you the option of
using the normal hardware FLEX
disks or the virtual FLEX disks
which actually are resident as
OS-9 files; FLEX Just thinks that
they are the usual disk.
For use under OF-Llnk. the
virtual disk Is to be preferred.
This Is particularly true If you
have a hard disk; you can easily
partition It Into FLEX and OS-9
segments. OS-9 would think that
there were only OS-9 flies pres-
ent, and all of the OS-9 file utili-
ties would work. However, don't
try to use a FLEX file utility on
one of the OS-9 virtual FLEX files;
this Is fatal! You can boot FLEX
from the virtual disk on the hard
disk, so you don't have to keep a
floppy around Just for that.
The virtual FLEX disk has 64
sectors per track, so you must
modify the FF9 disk parameters
accordingly. Assuming that you
have formatted your virtual FLEX
disk to have 24 tracks (to produce
368 screens), you would modify
FF9 by entering:
24 * TRK/DRV >BO0Y !
64 ' SEC/TRK >BODY !
1 * BASCTRK >BODY !
According to my calculations, a
single virtual disk could have as
much as 2032 screens. If the disk
is large enough. Of course, a
physical disk can have more than
one virtual disk!
Summary
Do I like OF-Llnk? You bet I do!!
Do I recommend OF-Llnk? You
bet I do!!
Sources:
OF-Link, $49.00 (+$5.00 SAH)
Sardis Technologies. 2261 East 1 llh. Ave.,
Vancouver, B.C.. Canada V5N 1Z7
SD1SK3. $29.95 (+$1.75 SAH) D.P Johnson.
7655 S.W. Ccdarcresl St., Portland. OR 97223
FORTH09 ver. 1.02
Dan Johnson has addressed my
complaint about FORTH09
shadow screens which I expressed
In my review last time. He now
allows a command line option *-n"
which eliminates any call to
shadow screens, so you are not
forced to provide for them.
Thanks, Dan, I appreciate that!
68 Micro Journal
Apnfl '89
17
FORTH09 has some quirks which
take a bit of getting used to.
These quirks are forced by OS-9
and are not something to be
changed on a whim. The most
obvious difference with a FOKFH
operating under OS-9. as opposed
to another environment. Is that
ALL absolute addresses are
Illegal. Therefore, you cannot
legally use Jump vector tables.
My observation that the form
shown In Screen #3 of my last
column would work resulted from
a peculiar set of circumstances.
This win only work If you compile
the screen each time you use It;
you cannot run from a SAVEd or
a SAVESYSed binary file, since
the absolute addresses would
then be wrong! Dan also said that
this would not work under Level I.
so I did not bother to try it.
The proper way to do vectored
execution in FORTH09 is through
the MAYBE ...THENAGAJN...
MAYBE NOT construct (1 love
Dan's choice of names). A work-
able definition is
: EXPERIMENT ( n - )
MAYBE EXO 1 EX1 2 EX2 1 EX3 MAYBE NOT
One can easily make OS-9 calls
directly from FORIH09. and Dan
has provided most of the words
one could ever expect to use.
Furthermore, he has provided
enough information so that defini-
tions can be quickly written to
cover the obscure calls that he
did not bother with.
Among these calls are F$ALLRAM
, F$MAPBLK . and F$CLRBLK .
which can be used to access
directly any RAM within reach of
the MMU. These words can be
used to access any RAM block, so
that FORIH09 is limited only by
the available memory. I wonder if
this kind of thing could be used
to control a latch which bank-
switched additional chunks of
RAM, so that the CoCo3 could go
even beyond the present 512K? I
don't plan to try it. but I am
cuilous.
Another way to access OS-9 Is
illustrated In the definitions
contained In Screens 46-48.
Actually, several features of
FORIH09 are illustrated in these
three screens.
This definition will accomplish the
same result as the set of dellnl-
tlons and commands I had shown
in Screen #3.
Remember, the method shown in
Screen #3 is still valid for other
environments, Just not for OS-9.
OS-9 «ccet» from FORTH09
Here is another example of how
much I still have to learn about
OS-9. I had read all the way
through (tough going) the manual
which came with my CoCo OS-9
Level D, but the significance of the
few lines on manipulating the
MMU did not register through all
of the other noise. However, the
documentation on FORI"H09
finally woke me up.
1 won't spend much time on the
first two screens, since they were
discussed In some detail in Sep-
tember. 1987. The only really
Important points, here, are in the
use of VAR , instead of VARIABLE
. to define ARGC (line 3 of screen
46). Line 5 of screen 46 and line 7
of screen 48 are identical in
showing how to place a value into
a VAR . There is no FORFH need
to use the loading command
twice, but these screens come
from my new FORrH09 utility file,
so that screen 46 can be used
with a reasonable default value in
ARGC . when It is loaded wilhout
screen 48. On the other hand.
ARGC is loaded in the definition
of HARD Just in case I might have
used ARGC somewhere else, so
that the value got changed. This
is simply cheap Insurance against
an annoying crash!
Screen 48 shows the use of CR"
and SHELL . two words which are
unique to FORI"H09. CR" places
the address of the CR-teiminated
string on the Data Stack. The
string literal must end with a " .
SHELL then uses this address to
pass Ihe string along to the OS-9
shell for execution and then
return control to FORIU09. As
you can see, this causes the
cuirent date and time to be
printed along with the screen
listing.
Hardware control through
FORTH09 under Level n
I may well be the only one in town
who did not realize that, with
FORTH09. I could directly access
the hardware located at physical
addresses $FFOO-$FFFF. In other
words, this command line:
fload forth -n 148k
gives me 8K. starting at logical
$COOO to play with through
F$ALLRAM . etc. and lets me
write directly to the hardware 1/
O. such as the casette motor
relay, or anything else located at
the physical addresses $EOOO-
$FFFF.
I tried to do this hardware access
from BASIC09, but I could not
find a way to make it work in
Level II. Undoubtedly, it must be
illegal, since It Is so desirable and
easy! In any case, the whole thing
is perfectly straight forward in
FORTH09. For example:
: MOTORON 4 6S313 C! ;
: MOTOROFF 52 65313 C! ;
Speaking of timing tests. I hope to
include some benchmark results
with FORIH09 in the near future.
I am impressed with the speed of
most of the operations: most of
the ones that I have checked to
date are faster than can be ex-
plained by the simple increase in
processor speed!
18
April '89
68 Micro Journal
Screen 46
\ ARGC HELP-SCREEN
\ A part Of PARSE -COMMAND- LI(E
VAR ARGC \ expected i
2 TO ARGC
I HELP-SCREEN ( - )
CR CR
Two input parameters are required
1 . f irat-acr#" CR
2. laat-scr»" CR CR
In no caae, can the value of "
firat-acr»" ASCII * EMIT
be greater than the value of *
laat-acr»." ASCII * EMIT
October 22, 1988 19:19
:30
RDL102088
10
11
12
»r of input parameters
13
14
15
16
\ RDL062587
17
18
1:" CR
19
110
111
ASCII "* EMIT
112
CR
113
ASCII " EMIT
114
CR ;
115
Screen 47
\ ARGV-OK PARSE-03«AND-LINE
\ Requires previous screen
I nl n2 - )
< \ first-scrt cannot be greater than last-serf
HEIP-SCREEN
ARGV-OK
2DUP
SWAP
IF
ABORT
THEN ;
PARSE-COMMAND -LINE
DEPTH ARGC <
IF HELP-SCREEN
ABORT
ELSE ARGV-OK
THEN ;
{ - )
October 22, 1988 19:19:34
RDL102088 |0
II
12
\ RDL1 02088 13
\ duplicate the input parameters I 4
15
16
17
18
19
\ RDL1 02088 110
\ minimum acgumant count?
\ wrong number of arguments
\ start over
\ verify argument validity
111
112
113
114
115
Screen 48
\ SHOW
SECONDARY DECIMAL
46 47 THRO
: HARD ( first-scrt laat-scrt - )
2 TO ARGC PARSE-COMAND-LINE
>PRINTER
14 SWAP DO
CR ." Screen * I
30 SPACES CR" DATE T" SHELL
I LIST
CR CR
LOOP
>SCREEN ;
October 22,
1988 19:19:
RDL102288
\ RDL102288 16
37
10
II
12
13
14
|S
17
18
19
110
111
112
113
114
115
FOR THOSE WH
91 X 1.1 I) TO KXOW
68 MICRO
JOURNAL
TM
68 Mcro Journal
April -80
16
Moil Of you will rononber
Bob from hii tciic* of tellers
onXBASIC If you lite il or
wtni more, tel Bob or us
toow We winl U) give yiw -
mhal y>n waul!
The Mathematical Design of Digital Control Circuits
By: R. Jones
Microma Reseirch Corp.
33383 Lynn Ave.. AMwuford. B.C.
Cuud* V2S IB2
Copyrighted © by R Jones & CPI
No TEST last time, ergo no solutions either!
Mile 20 - heading for Mile 2 1 .
Last time, we got Introduced to Boolean matrices, and learned how to interpret a matrix to let us trace paths
through Its corresponding circuit, and we also met Pivotal Condensation, a technique which allowed us to derive
a transmission function from a Boolean matrix. Now we'll learn the second oflhe two techniques I promised,
which has certain advantages and also some disadvantages compared to the first.
LAPLACE 8 DEVELOPMENT
Our second method, known as Laplace's Development. Involves the reduction of our matrix-a to a final 3-by-
3. or several 3-by-3s. which, for the benefit of those of you who are familiar with matrix and determinant theory
in advanced algebra, will then be evaluated In the same way as a third-order determinant. Except that all "-
" signs will be replaced by "♦" signs, as there Is no such thing as a minus sign In logic theoiy. at least not at the
level at which we're using It. For those of you who've never even HEARD of a determinant. I'll explain everything
that it's necessary for you to know in order to work with a third-order Boolean determinant, which is nothing
more terrifying than an end-result 3-by-3 matrix to all Intents and puiposes.
For our first example, we'll begin with our matrix-a of Diagram 102. from which, as you'll see. we'll derive the
function f l2 In no time at all. For 4-by-4 matrices. Laplace's Development gives a very quick solution indeed,
but tends to become Increasingly cumbersome as we proceed to matrices of higher order, for which I'd
recommend using Pivotal Condensation.
DERIVING A DETERMINANT FROM A FOURTH-ORDER MATRIX
You'll recall that In our first method we eliminated all nodes, commencing with the highest numbered node, until
we ended up with only those of interest, namely nodes 1 and 2. Strange as it may seem, our new technique seems
to dojust the opposite. That is. as were Interested In the function f |r WE BEGIN BY ELIMINATING ROW- 1 AND
COLUMN-2 ENTIRELY from matilx-a. Actually we'll just loop them In red. but. for all practical puiposes we've
scratched them out. Bang! They don't exist any more! How about that for a quick vanishing act? Then we write
down all that remains, as In Diagram 104. and we have our third-order determinant. Note that there's no row-
1 or column-2! Because of this fact, our determinant Is strictly for f 12 .
EVALUATING A THIRD-ORDER DETERMINANT
I 5 fc
t
2
51
£
b a
'A:
Diagram 104
20
Apnl 89
68 Micro Journal
The best way for a newcomer to "evaluate" such a determinant Is to Imagine a duplicate copy of 104 written
immediately to Us right (why don*t you do just that?) , and then to follow my explanation step-by -step. The dotted
lines are merely to show how a more experienced "reader" would achieve the same result without the need of
the duplicate copy alongside.
What we have to do Is to commence In the top-left corner, and slant down diagonally to the right until we reach
the bottom row, multiplying together (that Is. ANDlng) the three elements encountered along the way. Our first
effort produces 0.1.1 (which I haven't dotted, for clarity's sake). Then we move along the top row to the next
element, and again we'll slant down to give us "bdc*. which we'll add (that Is. we'll OR) to what we've already
got, so now we've got "0. 1. 1 + bdc". And once more, along to the top-right element, and slant down to give another
block of three literals, viz. "eda". Newcomers will now slide along lhe top row and Into the duplicate matrix, doing
exactly the same thing hut slanting downwards TO THE LEFT this time, to add yet another three terms to our
expression. Once again. I've omitted the dots through the main diagonal, otherwise we wouldn't be able to see
anything for dots! To give a complete picture. Ill mention that In normal algebraic operations, the second set
would be SUBTRACTED, not ADDED, but everything Is ADDED In Boolean algebra.
So now we have
0. 1. 1 + bdc + eda + O.d.d + b.a. 1 + e. 1 .c
= + bdc + eda +0 + ab + ce
= ab + ce + aed + bed
and we're not at all su rprlsed to find that this Is the same as that found by path-tracing. In actual fact, of course,
as we write down the original terms from the determinant, we'd omit completely any which contained a "0". and
we'd also omit the " l"s from any term which contained one. This would immediately give us the second of the
three expressions above, but without the O-terms!
That wasn't so bad after all. was It? So now you know about Boolean determinants!
FIFTH-ORDER BOOLEAN MATRICES
Wow! Just look at that heading! Enough to set you running for cover, isn't It? So let's Just sneak up on it. and
see if we can't lick this one too!
I mentioned that this method gets rougher as the size of the original matrlx-a grows, but 1 think we're brave
enough to tackle a 5-by-5. If not. there's always the helicopter back along the trail! All right then, we'll try our
hand at the 5 x 5 of Diagram 105a.
1 2 3
*♦ S
1 3
1* S
1
r l a c $
2
b e c
2
1 b e c
t 3
a 1 d J
3
a b 1 d d
F «*i,
c d 1 d'
ft
c e d 1 J
*l
b' a' d' 1
5
kj c <i 4 i.
(a) (b)
bee
bee
bee
a
d t d'
+ c
1 d a
+ b'
1 d a
a' d* 1
a' d' I
6 1
J
fc)
Diagram 105
68 Mcro Journal
April 69
21
DERIVING A FOURTH-ORDER DETERMINANT FROM A FIFTH-ORDER MATRIX
First of all. we'll establish that It's f,, we're Interested in, by eliminating entirely from 105a both row-1 and
column-2 to give us the fourth-order determinant of 105b. Observe the convention of Indicating a matrix with
delimiters to the right and left, with a curved top and bottom, whereas a determinant is delimited with simple
straight lines. So ... curved lines mean that the matrix, even a reduced one produced by pivotal condensation,
precisely describes Its original network. Straight lines indicate that at least one column and row have been
COMPLETELY eliminated, and not absorbed into a new matrix, as happens with our first technique. It's
possible, with experience, to read fourth-order determinants quite accurately, but as we're essentially lazy at
heart we'll reduce ours to the slmpler-to-handle third-order variety!
NOW FOR OUR THIRD-ORDER DETERMINANTS
We 11 do this scientifically, by selecting ANY SINGLE ROW OR COLUMN for elimination, preferably one with as
many 0-entries as possible. The reason for this will become clearer as we proceed! Here we have a choice of
either row-2 or column- 1 (there is no row-1). so let's select column- 1 and loop it in red.
We're now going to work our way down the selected column, one element at a time, and omit the row in which
this element occurs. This element will then be multiplied by (ANDed with) the 3-by-3 determinant which
remains. In case this all sounds a little confusing, and I've no doubt that it does, just tag along with me as I
actually do this. The first element in our selected column isO, which, as I've just mentioned, has to be multiplied
by some determinant. However, as times anything is equal to 0. we've really got nothing to do here. See now
why we love to have as many Os as possible?
Anyway, moving down to the next element, "a", In row-3, we must mentally eliminate row-3 from our 4-by-4
determinant of 105b (keeping In mind that column- 1 is already gone. In theoiy anyway), and create a little 3-
by-3. which we've written in 105c, with an "a" to the left, as this is the element Involved In the deleted column-
1. Then down to the next element In this column, namely "c\ eliminate row-4 in our minds, and write THIS
remaining 3-by-3 with a "c" to its left, and a "+" sign between the two third-order determinants to indicate that
they're going to be ADDED together (that is. ORed). And finally to element b' In column- 1 of 105b which gives
us the end determinant with a b" to its left. Now re-read my original instructions, and you should be able to
follow them this time!
MINOR DETERMINANTS
These final determinants, not being the full determinant of 105b, are Individually called "minors". And now
comes the tedious task of evaluating these minors, as we did with the 3-by-3 of our earlier example, and
multiplying each one by whatever is outside It. This is the time when I wish that the column had more Os tn
it! It's got to be done, however, so let's get on with it, first of all setting out the expression In full.
a(b + ed'a" + cd'd + bd'd' + ed + a'c)
+ c[bd + ea'a' + cd' + bd'a" + e + cda')
+ b'(bdd' + ea'd + c + ba' + ed' + cdd)
Now comes the horrendous task of multiplying each line of this complex expression by the literal outside each
set of parens. But first note that inside each set of parens a single literal occurs, and we can therefore eliminate
any term which contains this literal. At the same time, any term which contains the complement of the literal
OUTSIDE the parens may be eliminated, because when multiplied together we'll have the situation xx'y, and
as we know from our basic Boolean algebra (we do remember, don't we?), xx' = 0. thereby cancelling out this
term. We've also got several occurrences of this sort INSIDE the parens! So let's do this reduction first, to give
us
a(b + ed) + c(bd + cd' + a'bd' + e + a'cd) + b'ta'de + c + d'e + cd)
which then multiplies out to
ab + ade + bed + (cd' + a'bed') + ce + a'cd + a'b'de + (b'c + bed) + b'd'e
22 April '69 68 Micro Journal
I've highlighted Iwo sets of leims Inside parens, where we see lhal as the smaller term Is contained In lis entirety
within the larger term, the larger term can disappear.
cd\oo en II IO
CO
Ol
II
10
1
1
1
1
1
I
1
1
1
I
cd Xoe PI II
oo
ox
II
to
1
1
1
1
1
1
1
1
1
I
1
1
1
1
Diagram 106
The simplest way to finish off the simplification Is lo draw up a 5-varlable K-map as in Diagram 106. and read
oul the expression as
f 12 = ab + c + b'e
If this all seems like a lot of work from beginning to end. Just imagine what would have been Involved If we'd
started off with a 6-by-6 matrix, this would have reduced to a 5-by-5 determinant, which would have reduced
lo live 4-by-4 first minors. EACH OF WHICH would then have reduced to four 3-by-3 second minors, for a grand
total of twenty 3-by-3 minors to evaluate and simplify. Can you Imagine this? Not lhal it would be EASY by
the Pivotal Condensation method, but I think it would be far. far easier than this!!
MULTIPLE-OUTPUT NETWORKS AND BOOLEAN MATRICES
Now that we're rolling along nicely and smoothly, lets recall my earlier bit of info lo the effect lhal Boolean
matrices can keep track of several outputs simultaneously. We'll even complicate things a little, by making our
outputs share part of the same network!
la
4-
-
fo)
H
II - s - —
1 2 3
h S
1
2
1
'{0
a c N
I
r i
2
1 a
b
2
1
3
a 1
e
3
ce
a
U
q b
I d
4
o 4- cd
b
5
c c
' »j
ce
a'
I
de
+ cd* 1
b
de
I
fc>
2
3
I b(a 4- cd) eCc + ad)^
k(a + cd) I a' 4- bde
eCc ••- ad) a + bde I
(J)
Diagram 107
68 Mcro Journal
April '89
23
The circuit of Diagram 107a is a three-terminal network, with power input at node-1. two outputs (Zl and Z2]
at nodes 2 and 3. and two intermediate nodes, 4 and 5. Its Boolean matrix is shown In 107b. so we'll begin a
preliminary, partial analysis by eliminating nodes 4 and 5 from matrlx-a. leaving only the terminal nodes 1. 2
and 3.
First, let's eliminate node-5 by Pivotal Condensation, to produce malrlx-b of 107c. and then node-4 to give
matrix-c of 105d. Note that these are MATRICES, not DETERMINANT'S, as we haven't actually eliminated
anything, but merely CONDENSED our original matrix! In our final third-order matrlx-c. element a l3 details
the paths from node- 1 to node-2 (but NOT via node-3), a 13 the paths *from node- 1 to node-3 (but NOT via node-
2). and a u the paths from node-2 to node-3 (but NOT via node-1).
EVALUATING INDIVIDUAL PATHS
If we wish to lind the expression which describes the complete transmission-function f between nodes 1 and
2. we must eliminate node-3 by Pivotal Condensation, to produce
f 12 = b(a + cd) + e(c + ad)(a" + bde)
= ab + bed ♦ (ce + ade)(a' + bde)
= ab + bed + a'ce + bede + abde
= ab + bed + a'ce
Note that thellnal term supplies power to Zl via node-3! In similar vein, in order to find f 13 we'd eliminate node-
2 from 107d Instead, and if. for some reason, we were interested in knowing under what conditions nodes 2 and
3 would be connected together, we'd eliminate node- 1 Instead. The finally cleaned up functions are given below,
which you could check for yourselves by actually doing each evaluation.
f 13 = ce + ade + a "bed
f M = a* + bee + bde
A systematic method of node-elimination such as this gives us the transmission-function between any pair of
nodes desired, automatically taking into account ALL possible paths through the network. Our other alternative
Is to actually trace out the paths in the circuit-diagram, always with the possibility that one or more paths would
be overlooked. You'll have noticed that the Laws of Boolean Algebra really come into their own during this
reduction process, as the work is made much simpler if the elements are simplified as we go along. For example,
when reducing from 107c to 107d. the element c l3 starts out as
ce + (a + cd)(de)
and Instead of just inserting this complex little beast Into element c 13 , we multiply out and simplify first.
= ce + ade + cde (cde vanishes because of ce) to give e(c + ad)
CONNECTION MATRICES AND OUTPUT MATRICES
A matrix such as that of 107b. which contains only one literal per element is known as a "primitive connection
matrix", while matrices such as 107c or 107d. which contain more than one literal In any element, are called
simply "connection matrices".
There's a third type of matrix, known as an "output matrix", which charts, not the physical connections in the
network, but the FUNCTIONS describing the transmissions between nodes. As an example of an output matrix,
we could draw up a 3-by-3 for our present circuit, and insert in each element the three transmission-functions
Jusl evaluated individually. Such a matrix would, in each element, give the complete transmission-function
between the nodes forming Its co-ordinates IRRESPECTIVE OF WHEIHER SUCH A PATH GOES THROUGH
ANOTHERNODE OR NOT. whereas a normal connection matrix describes the connections between these nodes
BUT NOT VIA ANY OTHER NODE WHOSE NUMBER APPEARS IN THE MATRIX CO-ORDINATES.
The output matrix for the network of 107a is constructed by Inserting the three transmission functions already
worked out. as shown next.
24 April '89 M Uiao Journal
1
2
3
I
b(a + cd) 4- ace
e« +■ ade +■ e/bcd
2 3
b(a ♦■ cd) + cfce ce + ode +- abed
> cr** bcfc 4 d)
a 4. b*(c + d)
Diagram 108
The element d 14 now gives, not the PATH between nodes I and 2. but the CONDITIONS [ALL the conditions) under
which transmission will occur between these nodes. Take time out to think this over, so you're reasonably clear
about the distinction between the matrices of 107d and 108. even though both of them belong to the SAME
network.
That's got the ANALYSIS part of this thing out of the way. so now for SIMPLIFICATION. This wll always be our
line of attack, first analysis, then simplification, and then the big one - synthesis.
NETWORK SIMPLIFICATION BY BOOLEAN MATRICES
Are we all ready to move on in our study of Boolean matrices? If so. we'll Illustrate the versatility of our new
tool by eliminating, by Pivotal Condensation, the non-terminal nodes 3. 4 and 5 from the network of Diagram
109. thus deriving the FUNCTION f l2 in Its simplest form.
-n
a 3
Hr
J *
j£.
-IF
e a
4*
a*
Diagram 109
In our previous examples, no simplification was possible, as was obvious from the final expressions derived.
The matrix for circuit 109 and the subsequent step-by-step elimination of its non-terminal nodes are set out
in Diagram 110. The finally simplified expression for f ]2 shows that the original network can be completely
replaced by a single NO-contact on relay-D, as this is all that's necessary to specify the transmission-function
between nodes 1 and 2. Without Boolean matrix techniques, we'd never be able to figure this out from the
network, as it's quite a tough Job even to figure out Its Boolean expression directly!
1
1
2
3
a
<*
r ■>
1
i i 3
( do a
<r
ac
2
1
e a+ d
2
ad 1
e + a -»-d
3
a
1
d
3
a I
d
k
e
d
\ d
t*
a'e c+ a +-d d
I
5
a'
a + d
(4
e* 1
fc>
i
2
f
1
1
a'd
2
a'd
»
3
a +de'
d
(<
f,2 -a'd" + J(a + Jd)
>) » a'd + ad" + de
3
a
♦ de'
d
' J
=» d(a + a + O -
dO+c'
Diagram 110
68 Mora Journal
April '89
25
Suppose, in addition, lhat there were an additional output being taken off at node-4 to drive some other device,
and we desired to know the transmission-function f M . as well as f 12 Now we're getting a little complicated, to
say the least, but let's go along with this assumption. Node-5 has already been eliminated in 1 10b. so we'll now
proceed lo eliminate nodes 2 and 3 (so only 1 and 4 will be left), commencing with node-3 to produce the matrix
of Diagram 1 11a. from which we'll work out the function f ending up with **a'e' + d".
1 2
V
1
C 1 o'd o'e'+od
2
o'd I e *■ a + d
4
<aV -»- <aci e 4- a 4- d 1
} mJ
2 ,
ii
IK If r *-
If
Diagram 1 1 1
r l«*
f ltt , - aV ♦ ad 4- a'd(e+a+cO
s» a'«' ■+- ad •+ a'de 4- a'd
« a V -v a J 4- a'd
= aV-4dCaW)
= oV 4- d
The COMBINED dual-output circuit of the two simplilled functions is shown in 111b. But let's not
forget.however. that MATRIX CONTRACTION YIELDS THE SIMPLEST FUNCTION, AND NOT NECESSARILY
THE SIMPLEST CIRCUIT. If you don't believe me. Just go back and look at the FUNCTION derived from matrix
contraction in diagram 104, and the circuit diagram which we could reasonably expect loconslructfromit. The
simplest CIRCUIT is. of course, the original one of 101 . but the simplest FUNCTION describing it is that which
describes the equivalent circuit of Diagram 100b. All clear?
MORE CHIT-CHAT
While matrix contraction yields the simplest transmission-function, matrix EXPANSION, which we'll be
studying shortly, gives us a simplified circuit-diagram, if one exists. Don't be confused by the fact lhat matrix
contraction has Just given us a MUCH SIMPLER network, as it often happens that the simplest function is co-
incidenlally the simplest circuit also. If this DOES occur, remember that it's Just an accidental side-benefit
derived from the true purpose of contraction, and you'll never be really sure whether it's truly the simplest
circuit. Unless, of course, you end up with Just a few simple contacts, and you can tell at a glance that 11 can't
be reduced further.
And now it's TEST-time again for all you lucky people, so let's have a go at the following, but think carefully before
you answer the question posed in Problem 2!
TEST FIFTEEN
1. Evaluate f l2 by means of Laplace's Development, and draw the final circuit.
\
-&
-th
h£
-L*/
■I*.
tV
-#4- — #£-
26
April '89
68 Micro Journal
2. Nodes 1. 2 and 3 are terminal nodes. Eliminate nodes 4 and 5 by Plvolal Condensation, and draw the final
circuit diagram. Is this a simpler circuit?
3. Evaluate f l2 by means of Pivotal Condensation and draw the final circuit.
CAMP TIME AGAIN
Come on now. and admit that although this has been a VERY complicated few miles, this new stuff is nowhere
near as terrifying as our encounter with the Laws-of- Boolean Swamp. And Just think what It can do for your
design skills?
Anyway, while you're working at these three problems. I'm debating whether to lead you into another of those
word-logic problems, similar to that Involved in Uncle Fred's experiences with 1-asku of the M'bulyan tribe. I'll
let you know when we're ready to move off once more.
... End of Mile 20. and all gathered round marker Mlle-21.
FOR THOSE WH
68 MICRO
JOURNAL
TM
66 Micro Journal
April '89
27
Mac-Watch
Kqt Those
83
1
■ i
68 MJ
^^JhHHLX
Tne Macintosh* Section
Reserved as
A pllei«® flfarp wfannr? ft fa <a nn fgi Bn ft a
And ours.
This and That
Reviews of MaxPage and QulckLetter
By James E. Law
1806 Rock Bluff Rd.
Hlxson TN 37343
This month I want to briefly review several new
software packages starting with MaxPage which its
distributor. Applied System and Technologies, de-
scribes as 'the affoidable page makeup program."
A Review of MuF\ge
A logical part of us knows that you don't get
something for nothing but In spite of this, we
search for that rare deal where we get a treasure for
pennies. Occasionally it works out but most of the
time you get what you pay for. When I received a
piece of software which advertised page layout
capabilities for a suggested retail of $89. my curi-
osity was peaked. Could it really deliver? Let's find
out.
When you first open MaxPage. a blank page is
presented with a set of menu bars. The page may
be in landscape or portrait orientation. You may
activate a grid (maximum size of 17" by 17") for ease
in locating text or other items on the page. Oddly,
the default settings are for the grid to print out
when you print your page, but it may be ordered
not to print. It is specially marked to facilitate the
layout of bifolds and trifolds. There is only one view
of the page - full size - and no page preview is
provided. This is an unforgivable onunlssion for a
page layout program!
Working With Text
To work with text, you first create a text block
by clicking and dragging the cursor. Each text
block has a drag handle for use in ie sizing the
block. You can move text blocks around and
position them anywhere you like on a page. There
can be up to 75 text blocks per page.
Upon sizing and positioning a text block, you
can enter and edit text in the usual fashion.
Multiple fonts and sizes within a text block are
supported. Text can be typed into text blocks or
imported horn other applications. Text can be
aligned left, right, or center but may not be flush
Justified. No tabs are available. MaxPage allows
considerable control over line spacing. \bu can
adjust the leading above or below the selected line
or have leading automatically adjusted based on a
number of options.
If you enter or Import more text than a text
block can hold, it stacks below the visible area of
the text block. The hidden portion of the text can
be seen by re sizing the block. This excess portion
of the text can also be made to wrap over to a
different text block on the same or a different page.
This is a manual process that might work okay for
a simple one or two page document but would not
be practical for a more elaborate pioject.
Blocks aie also used to accept and position
PICT (draw-type) or PNTG (bit mapped) images.
The image is automatically scaled to fill the active
picture block. If you re size the block, the image is
ie sized. MaxPage takes a highly unusual ap-
proach to handling (mages in that the image is
referenced to its location on your drive and is not
leally Imported into MaxPage. Every time the page
28
April '6
68 Mcro Journal
is re drawn, the image is re-imported. This means
that the image file must stay on the same disks as
the MaxPage file. For a complex image, a notice-
able delay occurs in redrawing the page, lb avoid
this delay, you may elect an option in which images
are neither displayed or printed.
Background*
MaxPage allows you to import a full page PICT
image into your document as a "background."
Unlike the image handling covered above, back-
grounds are actually imported into and become
part of your MaxPage document. This feature is
intended to contain master elements (e.g., bor-
ders, letter heads, or logos) or to serve as a design
templet.
Conclusion
After my look at MaxPage, I conclude that you
get what you pay for. . . maybe. What MaxPage has
going for it is its cheap price. Disadvantages
include the lack of page preview, no text tabs or
Justification, and nonstandard ways of handling
graphics. If all you need is to lay out simple,
occasion, single page, perhaps MaxPage will serve
your needs. All in all, however, I cannot recom-
mend this product..
A Review of QuickLetter
Over recent years there have been a number of
mini woid processors in desk accessoiy form for
the Macintosh. The quality and number of fea-
tures in those programs varied widely but with a
few being quite powerful. I have just received
QuickLetter from Working Software, Inc., and it is
a jewel.
What it Does
QuickLetter is primarily designed for one thing
- wilting letters. Tb that end it provides for setting
up standard statlonaiy (with letter heads and
logos), maintaining an address book. Importing
addresses into your correspondence, and printing
letters and envelopes.
When you open QuickLetter, you may use the
default "statlonaiy" (to be discussed later), open
other McWrlte or QuickLetter documents or create
a new document. Your document then appears as
does a ruler (which may be hidden) with various
tools and a set of menu bars. Your document may
be either landscape or portrait oilentation in any
standard size.
QuickLetter 's text tools are fairly standaid so I
won't detail them. A featuie that I like is the ability
to use text size up to 200. Also, in QuickLetter, you
have more control over setting margins and line
spacing than in MacWrite.
QuickLetter allows you to set up standard sta-
tlonaiy to speed up the letter writing process. Such
stationary already contains standaid graphics
features (e.g., letter heads borders and /or logos)
margin and tab settings, and text specifications.
One such stationary design may be designated as
the default stationary and will automatically ap-
pear when you start QuickLetter.
You may import graphics for use as a logo or
letterhead. Whatever you import is automatically
placed in the upper left hand comer of the page and
cannot be moved. This lack of flexibility is a
significant weakness in QuickLetter. Consider-
able trial and eiror may be necessary to design the
graphic so that when pasted into QuickLetter, it is
corrected positioned.
QuickLetter contains a handy address book for
in putting addresses to your letter or envelope.
This feature also can be used to print labels. You
may search the address book for key words such as
a part of a name.
The print preview feature for QuickLetter is
especially nice. Not only can you easily preview
your letter and envelope as they will piint but you
can move the text around on the page independent
of the letterhead to visually position it as you like.
The Bottom Line
In summary, this is an unexpected nice prod-
uct. I keep finding useful features that I didn't
expect to find. If the imported graphics could be
more easily located, it would be perfect. But that
weakness can be worked around and so, on the
balance, QuickLetter's strengths outweigh its
weaknesses and is recommended.
EOF
fq® mam wm^
68 MICRO
JOURNAL 1 '
I
68 Micro Journal
April '89
29
Telephone: ($ 1 5} 842-4600 SOU tft TtClS t 9^6 dlU
OS-9, UrdJOEX, TL'LX, S'K'^OS
Telex: $106006630
Jtue (615) 842-7990
ASSEMBLERS
ASTRUK09 from S.E. Media •• A "Structured Assembler for the 6809"
which requires the TSC Macro Assembler.
FLEX. SK DOS. CCF • $99.95
Macro Assembler for TSC - Ihe FLF.X. SK DOS STANDARD Assembler.
Special -- CCF $3500; FLEX. SKDOS $50.00
OSM Extended 6809 Macro Assembler from Uoyd I/O. -- Provides local
labels, Motorola S-records. and Intel ilex records: XREF Generate
OS-9 Memoiy modules under FLEX, SK DOS.
FLEX. SK.DOS, CCF. OS-9 $99.00
Relocating Assembler/Linking Loader from TSC. -- Use with many of the
C and Pascal Compilers.
FLEX . SKDOS, CCF SI 50.00
MACE, by Graham Trott from Windrush Micro Systems ■■ Co-Resident
Editor and Assembler; Cast interactive A.I- Programming for small to
medium-sized Programs.
FLEX. SKDOS, CCF . $7500
XMACE MACE w/Cross Assembler for 6800/1/2/3/8
FLEX. SK DOS. CCF ■ $98.00
DISASSEMBLERS
SUPER SLEI..TH from Computer Systems Consultants Interactive
Disassembler: exiremely POWERFUL! Disk File Binary/ASCII
Examine/Change, Absolute or FULL Disassembly. XRliF Generator,
label "Name Changer", and Files of "Standard Label Names" for
different Operating Systems.
Color Computer SS-50 Bus (all wt AL Source)
CCO (32 K Req'd) Object Only $49 00
FLEX. SK DOS $99.00 - CCF Object Only $50.00 UntFLEX $100 00
CCF. »ilh Source $99.00 OS-9. $10100 ■ CCO. Object Only $50.00
68010 SUPER SLEUTH . Similar to 8- Bit Version except written
in "C".
68010 Disassembler $100.00 FLEX. UntFLEX. UNIX, XENIX,
MS DOS, SK DOS. OS-9
OS-9/68K Object Only $100.00 or mth Source $20000
DYNAMITE* -• Excellent standard "Hatch Mode" Disassembler. Includes
XREF Generator and "Standard Label" Files. Special OS-9 options
with OS 9 Version.
CCF. Object Only $100.00 ■ CCO, Object OnlyS 59.95
FLEX, SKDOS . Object Only $100.00 - OS-9. Object Only$l50O0
UniFLEX Object Only $300.00
CROSS ASSEMBLERS
CROSS ASSEMBLERS from Computer System Consultants -- Supports
1 802/5. Z-80, 6800/1/2/3/8/1 1/HCI 1 , 6804, 6805/HC05/ 146805. 6809/
00/01. 6502 family, 8080/5. 802O/1/2/35/C35/39/ 40/48/C48/49/C49/50/
8748/49. 8031/51/875132000 and 6BO0O/680I0 Systems. Assembler
and Listing formats same as target CPU's format. Produces machine
independent Motorola S Text. Includes Macro Preprocessor. Written in
C'- 68000 or 6809 'Macintosh' Atari. FLEX. CCF. UntFLEX. OS-9,
XENIX, UNIX. MS DOS. SK DOS
any object $50 or any 3Jor $100
any source is an additional $50 or any 3 for $100
Set of ALL object $200.00 - wtlh source $50000
XASM Cross Assemblers for FLEX, SKDOS from S.E. MEDIA - liiis sei
of 6800/1/2/3/5/8. 6301, 6502, 8080/5. and 280 Cross Assemblers uses
the familiar TSC Macro Assembler Command Line and Source Code
fonnal. Assembler options, etc., in providing code for target CPU's.
Complete set, FLEX. SK.DOS only - $150.00
CRASM1I from LLOYD I/O - Supports Motorola's. Intel's. Zilogs, and
other's CPU syntax for ihese 8-Bit microprocessors: 6800. 6801, 6303,
6804.6805,6809.6811 (all varieties): 6502, 1802/5, 8048 family, 8051
family. 8080/85. Z8, Z80.and TMS-7000 family, lias MACROS,
Local Labels, Label XREF, Label Length to 30 Chars. Object code
formats: Motorola S Records (text), Intel HEX Records (text), OS-9
(binary), and FLEX, SK-DOS (binary) Written in Assembler ... e.g.
Vcrv Fist.
CPU TYPE - Price each:
For. MOTOROLA INTEL
FLEX9 $150
SKDOS $150
OS 9/6809 $150
OS9/68K
CRASMII 1632 from IXOYD I/O
$150
$150
$150
OTHER COMPLETE SET
SI 50 S399
SI 50 $399
$150 $399
$432
Supports Motorola's 68000, and has
same features as the 8 bit version. OS9/68K Object code Fonnat allows
this cross assembler to be used in developing your programs for
OS-9/68K on y«ur OS-9/6809 computer.
FLEX. SKDOS. CCF. OS 916809 $24900
COM MU NIC A TIONS
CMOUEM Telecommunications Program from Computer Systems
Consultants, Inc. -- Maiu-Dr ven: supports Dumb-Tcnninal Mode,
Upload and Download in non-protocol mode, and the CP/M "Modem?"
Chrisiensen protocol mode to enable communication capabilities for
almost any requirement Wntlcn in "C"
HEX. SK DOS. CCF. OS 9. UniFLEX. UNIX. XENIX. MS-DOS.
with Source $100 00 - without Source $5000
X-TALK from S.ii. Media - X-TALK consists of two disks and a special
cable, the hookup enables a 6809 SWTPC computer to dump UniFLEX
files directly to the UniFLEX MUSTANG 020. this is the ONLY
currently available method to transfer SWTPC 6809 UniFLEX files to a
68000 UniFLEX system. Gimix 6809 useis may dump a 6809
UniFLEX file to a 6809 UniFLEX live inch disk and it is readable by
the MUSTANG-030. The cable is specially prepared with internal
connections to match the non-standard SWITC SO/9 J/O Db25
connectors. A special SWTPC S+ cable set is also available. Users
should specify which SWTPC system he/she wishes to communicate
with the MUSTANG 020. The X-TALK software is furnished on two
disks. One eight inch disk contains S.E. Media modem program C-
MODEM (6809) and the oilier disk is a MUSTANG 020 five inch disk
with C-MODEM (68020). Text and binary files may be directly
iransfened between the two systems. The C-MODEM programs are
unaltered and perform as excellent modem programs also. X-TALK
can be purchased with or without the special cables, but this special
price is available to registered MUSTANG 020 users only.
X-TALK Complete (cable, 2 disks) $99.95
X-TALK Software (2 disks only) $69.95
X TALK with CMODFM Source $14995
XD ATA from SE Media A COMMUNICATION Package for ihc
UniFLEX Operating System. Use with CP/M, Main Frames, other
UniFLEX Systems, etc. Verifies Transmission using checksum or
CRC; Re-Transmits bad blocks, etc,
UntFLEX- $29999
A»»ltaWllly Ltiendi
O.OS-J, S.SK«DOS
r.FLEX.u.unirux
CCO ■ Color Compute OS-»
CO . Colo. Conpwltr KIXX
South TCast 'Media
S900 Cassandra Smith 1(J. - "HvQon., Ttt, 3 7543
** Shipping ••
AM 1* ILS.A. (mln.SlM)
Fortlpi Su/Tve A44 S»
J'ortlpi Almll Add !•*»
OrC.O.D.ShlPBlatOnl;
'OS.»lllTridrni.r»orMkri»CTM»i»i)»>^»«»<»-'»- , LtX«^dU«IFUO(irtTr«a^lurlll<ltTKlinlc»l SjUfmiCnniultmU-'SK' DOS bmTmtmnrH oTSUt-K S«rft»»r» SjIM—Cwt.
jq April '89 68 Micro Journal
'fefcfihoiic: (615) 842-4600
South "East Media
OS -9, ilni'J L'LX, 'JL'LX.S'K'-DOS
'fa*: (615) $42-7990
PROGRAMMING LANGUAGES
PL/9 from Windrush Micro Systems - By Gnhim Tru4i. A combuiauon
Editor Compiler Debugger. Direct source -lo-objcct compilation
delivering fail, compact, re-entrant. ROM-able. PIC. 8 & 16-bil
(niegers & 6-digii Real numbers for all real-world problems. Direct
control over ALL System resources, including interrupts.
Comprehensive library support: simple Machine Code interface: step-
by-step tracer for instant debugging. 500+ page Manual with tutorial
guide.
FLEX. SKDOS. CCF - J/94.00
PASC from S.E. Media - A FLEX9. SKDOS Compiler with a definite
Pascal "flavor". Anyone with a bit of Pascal experience should be able
to begin using PASC to good effect in short order. The PASC package
comes complete with three sample progiams: ED (a syntax or structure
editor), EDITOR (a simple, public domain, screen editor) and CHESS
(a simple chess program). The PASC package comes complete with
sourer (written in PASC) and documentation.
FLEX. SKDOS 195 00
WHIMSICAL from S.E. MEDIA Now supports Real Numbers. "Structured
Progtamming" WITHOUT losing the Speed and Control of Assembly
Language! Single-pass Compiler features unified, user-defined I/O;
produces ROMable Code; PtvccAi res and Modules (including pre-
compiled Modules); many "Types" up to 32 bit Integers, 6- digit Real
Numbers, unlimited sized Arrays (vectors only); Interrupt handling;
long Var able Names; Variable Initialization; Include directive;
Condiiiorui I compiling: direct Code insertion; aonuol of the Stack
Pointer; etc Run-Time subroutines inserted as called during
compilation. Normally products 10% less code than PU9
FLEX. SK DOS and CCF J/95 00
KANSAS CITY BASIC from S.E- Media - Basic for Color Computer OS9
with many new commands and sub. functions added. A full
implementation of Ihe It''-T!iliN-iiLSI: logic is included, allowing
nesting to 2SS levels Sitings are supported and a subset of the usual
suing funcuons such as LEFTS, RIG 1 1 TV MIIK. STRINGS, etc. arc
included. Variables are dynamical) y allocated. Also included arc
additional features such as Peek and Poke A must for any Color
Computer user running OS-9.
CoCo OS-9 139 95
C Compiler from Wlndrush Micro Systems by James McCosh. Full C for
FLEX. SKDOS except bil-f elds, including an Assembler. Requires
Ike TSC Relocating Assembler if user desires to implement his owl
Libraries.
FLEX. SKDOS. CCF - J295.00
C Compiler from Introl - Full C except Doublet and Bit Fields,
streamlined for the 6809. Reliable Compiler: FAST, efficient Code.
More UNIX Compatible than most.
FLEX. SKDOS. CCF. OS-9 (Level II ONLY). UniFLEX - 1575.00
PASCAL Compiler from Lucldata -• ISO Based P Code Compiler.
Designed especially for Microcomputer Systems. Allows linkage to
Assembler Code for maximum flexibility.
FLEX. SKDOS and CCF -1190.00
OmegaSoR PASCAL from Certified Software - Extended Pascal for
systems and real-time programming.
Native 680QtV58<Efl Compiler, $575 for base package, options available.
For OS-9/68000 and PDOS host system.
6809 Cross Compiler (OS-9/68000 host) $700 for complete package.
KBASIC - from S.E. MEDIA - A "Native Code' BASIC Compiler which is
now Fully TSC XBASIC compatible. Ihe compiler compiles to
Assembly Language Source Code. A NEW, streamlined. Assembler is
now included allowing the assembly of LARGE Compiled K-BASIC
Programs. Conditional assembly reduces Run-lime package.
FLEX. SK DOS. CCF. OS-9 Compiler /Assembler $99 00
CRUNCH COBOL from S.E. MEDIA - Supports large subset of ANS11
Level 1 COBOL with many of the useful level 2 features. Full FLEX.
SK DOS File Structures, including Random Files and the ability to
process Keyed Filet. Segment and link large programs at runtime, or
implemented as a set of overlays. The System icquires S6K and CAN
be run with a single Disk System. A very popular product.
FLEX. SKDOS, CCF . 199 9S
FORTH from Stearns Electronics -- A CoCo FORTH Programming
Language. Tailored to the CoCot Supplied on Tape, transferable to
disk. Written in FAST ML. Many CoCo functions (Graphics, Sound.
etc.). Includes an Editor, Trace, etc. Provides CPU Cany Flag
accessibility. Fast Task Multiplexing, Clean Interrupt Handling, etc. for
the "Pro". Excellent "Learning" tcoll
Color Computer ONLY ■ 158 95
FORTHBUILDER it a stand-alone target compiler (crosscompiler) for
producing custom Foith systems and application progiams.
All of the 83-standard defining words and control structures are
recognized by FORTHBUILDER.
FORTHBUILDER is designed to behave as much as possible like a
resident Foith interpieter/compiler. to thai most of the established
techniques for wiiting Foith «odc can be used without change.
Like compilers far other languages. FORTHBUILDER can operate in
"batch mode".
Ihe compiler recognizes and emulates target names defined by
CONSTANT or VARIABLE and it readily extended with "compile-
umc" definitions to emulate specific target words.
FORTMBUILDKR is supplied as an executable command file
configured for a specific host system and target processor. Object
code produced from the accompanying model source code u royally-
free to Ikcntcd users.
FLEX. CCF. SKDOS - J99 95
EDITORS & WORD PROCESSING
JUST from S.E. Media — Text Formatter developed by Ron Anderson; for
Dot Manix Printers, provides many unique features. Output
"Formatted" Text to the Display. Use the FPRINT.CMD supplied for
producing multiple copies of the "Formatted" Text on the Printer
INCLUDING IMBEDDED PRINTER COMMANDS (very useful at
other times also, and woilh Ihe price of the program by itsell). "User
Configurable" for adapting to other Piintcrs (comes set up for Epson
MX-80 with Graflrax); up to ten (10) imbedded "Printer Control
Commands". Compensates for a "Double Width" piinted line. Includes
the normal line width, margin, indent, paragraph, space, vertical skip
lines, page length, page numbciing. centering, fill, justification, etc.
Use with PAT or any oilier editor.
* Now supplied as a two disk set
Disk*! JUS12CMD object file.
WS17.1TTPL9 source FIEX. SK DOS . CCF
Disk 02: JUSTSC object and source in C.
FLEX, SKDOS, OS 9. CCF
The JTSCand regular JUST C source arc two separate piognms. JTSC
compiles to a version that expects TSC Word Processor type
commands, (pp sp ce etc ) Great for your older text files. TheC
0.04-*,S.SK*00£
F.n-EX. U. ttairLEX
CO • Cote. Cunantir OS.*
CCF . Color CooiooUr FUI
South 'East 'Media
5900 Cassandra Smith %d. - Xi*f<m, Tn. 37343
rtv>.iVrr,ircl
•• Shipping ••
A<M 1* USA. (aria. 115a)
tw^aa WTMAMn
FVvtIcp Alm.ll AM 1*»
Or C-O.D. S birr- Ina Ool,
•OS.»U» Tr.««~r> 1 if Mkro^rtMo Mntorcla.'FLEX ■!>< UalPl-g»ar«Tr«4«iii«f>jof T«cb»tc»l Sj««i«C<mniln»l».*Slf POS tufroomumof 81«rHSWr-»rt Sfiu—C^y.
68 Micro Journal
Apr. 89
31
Tefepfiorte: (615) 842-4600 SOU tfl 'EOS t 94e did
OS-9, Vni'/L'EJC, JL'LX, $%'<D0$
Telex: HlOiiOlbnM)
7&KI (615) 842*7990
source compiles to * standard syntax JUST.CMD object Tile. Using
JUST tynuu (.p ,u ,y etc.) Wjih all JUST funcuons plus several
additional printer formatting (unctions. Reference the JUSTSC C
source. For Ihose wanting an excellent BUDGET PRICED word
processor, with features none of (he olhers have. This is ilt
Disk (I) ■ PL9 FLEX only- FLEX. SK DOS & CCF - S49 95
Disk Set (2) . FLEX. SK DOS A CCF &. OS-9 (C version) - 169 95
OS-9 68K0O0 complete with Source - V9 95
PAT from S.E. Madia - A full feature screen oriented TEXT EDITOR with
all the. best of "PIE™". For those who swore by and loved only PIE.
this is for youl All PIE features and much morel Too many features to
list. And if you don't like these, change or add your own. PL-9 source
furnished. "C" source available soon. Easily configured to your CRT,
with special config section.
Regular FLEX, SK DOS $ 12950
• SPECIAL INIRODUCTION OFFER • S79.95
SPECIAL PATIJUST COMBO (with source)
FLEX. SK DOS S99.95
OS-9 68K Version S229J0O
SPECIAL PAT/JUST COMBO 68K S249J0O
Note: JUST in "C" source available for OS-9
CEDRIC from S.E. Media ■ A screen oriented TEXT EDITOR with
availability of 'MENU' aid. Macro definitions, configurable 'permanent
definable MACROS' - all standard features and the fastest global'
functions in the west A simple, automatic terminal config program
makes this a real 'no hasscl* product. Only 6K in size, leaving the
average system over 165 sectors for text buffer - appx. 14,000 plus of
free memory I Extra fine for programming as well as text.
FLEX, SKDOS S69 95
BAS-EDIT from S.E. Media - A TSC BASIC or XBASIC screen editor.
Appended to BASIC or XBASIC. BAS-EDIT is transparent to normal
BASIC/XBASIC operation. Allows editing while in BAS1C/XBASIC.
Supports the following functions: OVERLAY. INSERT and DUP
LINE. Make editing BASIC/XBASIC programs SIMPLE1 A GREAT
lime and effort saver. Programmers love it! NO more retyping enure
lines, etc Complete with over 25 different CRT terminal configuration
overlays.
FLEX.CCF.SK DOS 139.95
SCREDTTOR III from Wmdrush Micro Systems •• Poweiful Scieen-
Oriented Editor/Word Processor. Almost SO different commands; over
300 pages of Documentation wilh Tutorial. Features Multi-Column
display and editing, "dednul align" columns (AND add them up
automatically), multiple keystroke macros, even/odd page headen and
footer), imbedded piinter aontiol codes, all justifications, "help"
support, iiore common command series on disk, etc Use supplied "set-
ups", or remap the keyboard to your needs. Except for proportional
pliming. this package will DO IT ALLI
6800 or 6809 FLEX, SKDOS or SSB-DOS. OS 9 . S175JOO
SPELLB "Computer Dictionary" from S.E. Media -- OVER 150,000 words!
Look up a word from within your Editor or Word Processor (with the
SPHCMD Utility which operates in the FLEX. SKDOS UCS) Or
check and update the Text after enliy; ADD WORDS to the Dictionaiy,
"Hag" questionable words in the Text, "View a word in context" before
changing or ignoring, etc. SPEUJ) lint cheeks a "Common Wad
Dictionary", ihen the normal Dictionary, then a "Personal Woid List",
and finally, any "Special Woid List" you may have specified. SPELLB
also allows the use of Small Disk Storage systems.
FLEX. SKDOS and CCF ■ SI29.95
STYLO-GRAPH from Great Plains Computer Co. •- A fulll-screen oriented
WORD PROCESSOR - (uses the 51 x 24 Display Screen* on CoCo
FLFJC/SK-DOS. or PBJ Wordpak). Full screen display and editing;
supports the Daisy Wheel proportional printers.
NEW PRICES 6809 CCF and CCO ■ S99 95,
FLEX. SKDOS or OS 9 SI79 95. UniFLEX. S299 95
STYLO-SPELL Iran Great Plains Computer Co. - Fast Computer
Dictionary. Complements Stylograph.
NEW PRICES 6809 CCF and CCO - 169 95.
FLEX. SKDOS or OS-9 - S99.95. UniFLEX- S149 95
STYLO. MERGE from Great Plains Computer Co. - Meige Mailing list to
"Form" Letters, Print multiple Files, etc., through Stylo.
NEW PRICES 6809 CCF and CCO . S59 95.
FLEX. SKDOS or OS-9 . 179 95, UniFLEX. SI29 95
STYLO PA K -Graph + Spell ♦ Merge Package Deal III
FLEX, SK DOS or OS-9 . S329.95. UniFLEX - S549 95
OS-9 68000 S695 00
DATABASE ACCOUNTING
XDMS from Westchester Applied Business Systems
FOR 6809 FLEX or SKDOS (5/8")
Up to 32 groups/fields per record! Up to 12 character file names) Up to 1024
byte records! User defined screen and print control! Process files! Form
filesl Conditional execution) Process chaining! Upward/Down waid file
Unkingl File Joining! Random Tile virtual paging) Built in utilities! Built
in text line editor! Fully session ortcnladl Enhanced forms! Boldface,
Double width, Italics and Underline supported I Written in compact
structured assembler! Integrated for FAST execution 1
XDMS-IV Data Management System
XDMS-I V is a brand new approach to data management It not only permits
users to describe, enter and retrieve data, but also to process entire Tiles
producing customized reports, screen displays and file output.
Processing can consist of any of a set of standard high level functions
including record and field selection, sorting and aggregauon, lookups in
other files, special processing of record subsets, custom report
formatting, totaling and subtouling, and pnscntaUon of up to three
related Tiles as a "database" on user defined output reports.
POWERFUL COMMANDS!
XDMS-IV combines ihe functionality of many popular DBMS software
systems with a new easy to use command set into a single integrated
package. We've includad many new features and commands including a
set of general file utilities. The processing commands are Input-Proccss-
Outpuf (IPO) which allows almost instant implementation of a process
design.
SESSION ORIENTED!
XDMS-IV is session oriented. Enter "XDMS" and you are in instant
command of all the feaiuies. No more waiting for a command to load m
from disk! Many commands are immediate, such as CREATE (file
definition). UPDATE (file editor), PURGE and DELETE (utilities).
Olhers are process commands which are used to create a user process
which is executed with a RUN command. Either may be entered into a
"process" file which is executed by an EXECUTE statement Processes
may execute other processes, or ihem selves, cither conditionally or
unconditionally. Menus and screen prompts arc easily coded, and entire
user applications can be run without ever leaving XDMS. IV
O • CHS-*, s . SK'DOS
r,nrt,u. uatnu
nra , a*» t as s tft s a v os.«
ccf . m. i, w ii> rucx
South 'Lost Media
5900 Cassandra. Smith KjC ■ 9fc(fon. Tn. 37343
" Shipping ••
am i* UiA. (jala. U.M)
Pamaa Jaro» AM i%
tmntmt Alraa IIU1 1«»
Or COJJ. SAVrta, Oar>
*l)S-*lii \ rtfamtth r>r Mkr.r*trt tnd M„t,f..u 'Kl IA ind l.nlM.EX iff I rtetmtr hiot Tnhnkal SynnniCwnuluml*.*SK* DOS !■ m Trademark oT sue .K Salt^irt SymnM tjra.
32
April '09
68 Mcro Journal
Tefcpfione: (6 1 5) $424600 SOU tfl 'EtlS t (Media
OS-9, ihu'.fL'LX, fC'EX, S'K'DOS
Ti-tcx: SlObOObt&O
fa*: fa 15) 842*1
ITS EASY TO USE!
XDMSIV keeps data management simple! Rather than design i complex
DBMS whidi hidei the Uue nuure of the data, we kepi XDMSIV Hie
oriented. The user view of dais relationship! is presented in reports and
screen output, while ihe actual data resides in easy 10 maintain dies.
This aspect pcmuis customitcd presentation and reports without
complex redefinition of the database files and structure. XDMS-IV may
be used for a wide range of applications from simple record
management systems (addresses, inventory ...) to iniegiaied database
systems (order entiy, accounting...)
The possibilities ire unlimited...
FOR 6809 FLEX or SK-DOS(5"/8" Disk) (249.95
UTILITIES
Bajlc09 XRef from S.E. Media •• This Basic09 Cross Reference Utility is a
Basic09 Program which will produce a "pretty primed" listing with each
line numbered, followed by a complete cross referenced listing of all
variables, externa] procedures, and line numbers called. Also includes a
Program List Utility which outputs a fast "pretty printed" lining with
line numbers. Requites 8asic09 or RunB.
OS-9 A CCO objtel only - S39.9S; with Source - $79.95
BTrtt Routines • Complete set of routines to allow simple implementation
of keyed files -for your programs - running under Basie09. A real time
saver and should be a part of every serious programmers tool-box.
OS-9 A CCO objtel only ■ SS9 9S
Lucldata PASCAL UTILITIES (Requires Pascal ver 3)
XREF ■• produce a Cross Reference Listing of any text: oiiented to Pascal
Source
INCLUDE -- Include other Files in a Source Text, including Binaiy -
unlimited nesting.
PROFILER - provides an Indented, Numbered, "Structogram" of a Pascal
Source Teal File; view the overall structure of large piogiams, program
inlcgniy. etc Supplied in Pascal Source Code: iccjuirei compil atton.
FLEX. SKOOS. CCF — EACH 5~ ■ UOW, «" - S50M
DUB from S.E. Media - A UniFLEX BASIC decompiler Re-Creale a
Source Listing from UniFLEX Compiled basic Prog/vns. Woiks with
ALL Versions of 6809 UniFLEX basic.
UniFLEX ■ J2I9.95
LOW COST PROGRAM KITS from Southeast Media The following kits
are available for FLEX. SKDOS on ether J' or 8" Disk.
1. BASIC TOOL-CHEST $29.95
BUSTER. CM D: pretty priner
LINEXREF.BAS: line crots-refercnccr
REMPAC.BAS, SPCPAC.BAS. COMPACBAS:
remove supcriluous code
STRIP. BAS: superfluous line-numbers mipper
2. FLEX, SKDOS UTILITIES KIT $39.99
CATS. CMD: alphabetical! y -sorted directory listing
CATD-CMD: date-sorusd directory listing
C0PYSORT.CMD: file copy, alphabetically
COPYDATE.CMD: file copy, by dale-order
FILEDATE CMD: change file creation date
INFO.CMD (4 fNFOGMX.CMD): tells disk attributes A. contents
RELINK CMD {& RELINK82): reorders fragmented free chain
RESQ.CMD: undelete* (recovers) a deleted file
SECIORS.CMD: show sector order in free chain
XLCMD: super text lister
3. ASSEMBLERS/DISASSEMBLERS UTILITIES S39.9S
LINEFEED.CMD: modularise' disassembler output
MATH CMD: decimal, hex, binary, octal conversions
A tablet
SKIP.CMD: column stripper
4. WORD - PROCESSOR SUPPORT UTILITIES $49.95
FULLSTOP.CMD-. chucks for capitalization
BSTYdTBAS (.B AC- Stylo to dot matrix printer
NECPRINT.CMD: Stylo to dot-matrix primer filler code
5. UTILITIES FOR INDEXING $49.95
MENU.BAS: selects nquintd program from list below
INDEX BAC: word index
PHRASES BAC; phrase index
CONTENT.B AC table of contents
INDXSORT.BAC: fast alphabetic son routine
FORMATER.BAC: produces a 2-coiumn formatted index
APPEND.BAC: append any number of files
CHAR BIN: line reader
BASIC09 TOOLS consist of 21 subroutines for Basic09.
6 were written in C language and the remainder in assembly.
All the main cs arc compiled down to native machine code which
makes them fast and compact.
1. CF1LL - fills a string with characters
2. DPEEK - Double peek
3. DPOKE - Double poke
4. FTOS - Current file position
J, FS1ZE - File sue
6. FTRIM -- removes leading spaces from a string
7. GETPR -- returns the current process ID
8 GETOPT - gels 32 byte option section
9. GETUSR - gets the user ID
la GTIME - gets the tune
11. INSERT - insert a suing into another
12. LOWER -- converts a string into lowercase
13. READY -- Checks for available input
14. SETPRIOR - changes a process priority
15. SETUSR - changes the user ID
16. SETOPr •- set 32 byte option packet
17. STIME - sets the time
18. SPACE -- adds spaces to a string
19. SWAP — swaps any two variables
20. SYSCALL - system call
21. UPPER - converts a string to uppercase
For OS-9 - $44.95 • Includes Source Code
SOFTOOLS
The following programs are included in object foun for trrunedi ate
application. PL/9 source code available for custom zalion .
READ-ME Complete instructions for initial set-up and operation. Can even
be printed out with the included text processor.
CONFIG one time system configuration.
CHANGE changes words, characters, etc. globally to any text type file.
CLEANTXT converts text filet to standard FLEX, SK-DOS Tiles.
COMMON compare two text files and reports differences.
COMPARE another check file that reports mis-matched lines.
CONCAT similar to FLEX. SKOOS append but can also list filet to screen.
DOCUMENT for PL/9 source files. Very useful in examining parameter
passing aspects of procedures.
A.I
■ OS-t, I ■ SK-DOS
r.FLtX.U.UalFLM
cca . Goto* ca»p«itr o&-f
CTF - Cofc* ConpuUT TXXX
South "East 'Media
S9Q0 Cassandi-aSmitk Hf. ■ 9&rftm, Tn. J7i4i
L^
•• Sblppln* ••
A44 1% u&A. (ai& tut)
Fantaa JvrCn KU I*
fW<Sa> Air— tH A** If*
OrC.O-D.SlM»f*>aO«rj
*p«-f t»« TT»*mMrt »f Mttrenww ma Matjrala.'ST.rtK mn* Unlin.EX in Tr»4fm»rtn «f Technical Sjujim Gnunlmiu-'SK*D08 hi i
■fc af Star-K IcrtTt 1 jsstsas Cfp.
66 Mrcro Journal
April '89
33
'fctcpinmc: (6 I 5> 842-4600 SOU tft T,OS t fMcdid
OS-9, Uni'JCLX, 'JLLX, S'K'^OS
•I\'tf.\: 5106006630
tFwc (615) 842-7990
ECHO echo* lo other scran or file.
FIND an unproved find command with 'pattern" matching and wildcaids.
Veiy useful.
HEX dumps files in both hex and ASCII,
INCLU'OEi file copy program thai will accept "includes" of other disk files.
K WIC allows rousing each word, on each line to ilie beginning. Very useful
in a sort program, etc.
LISTDIR a directory listing program. Not super, but better than CAT.
MEMSORT a high-speed text file softer. Up lo 10 fields may be sorted.
Veiy fast. Very useful.
MU LTICOL width of page, number of columns may be specified. A
MUST!
PAGE similar lo UST but allows for a page header, page width and depth.
Adjust for CRT screen or printer as set up by CONFIG. A very smart
piinl driver. Allows printer control commands.
REMOVE a fast file deleter. Careful, no prompts issued. Zap, and its gone!
SCREEN a screen listing utility. Word wraps text lo fil screen. Screen depth
may be altered al run time.
SORT a super version of MEMSORT. Ascending/descending order, up to 10
keys, case over-ride, son on n" word and sort on characters if file is
small enough, sons in RAM. If large file, son is constrained to size of
your largest disk capacity.
TPROC a small Nil ruvc tat formatter. Ilus i» a complete formatter and has
functions not found in other formatters.
TRANSLIT sons a file by x keyfiields. Check! for duplications. Up to 10
key files may be used.
UNROTATE used with KWIC this program reads an input file and unfolds
il a line al a lime. If ihe Tile has been soiled each word will be
presented in tequoMC
WC a word count utility. Can count words, characters or lines.
NOTE: this set of utilities consists of 6 5-1/4" dbfcs or 2 8" disks, with
source (PL9). 3 S- 1/4" disks or I 8" disk without source.
Complete set SPECIAL INTRO PRICE:
5-1/4" with source FLEX or SK-DOS - S129 95
without source • $79.95
8" with source • $79.95 • without source $49.95
FULLSCREEN FORMS DISPLAY from Computer Systems Consultants
- TSC Extended BASIC program suppons any Serial Terminal with
Cursor Control or Memory-Mapped Video Displays; substantially
extends Ihe capabilities of the Program Designer by providing a table-
driven method of describing and using Full Screen Displays.
FLEX. SK DOS and CCF. UniFLEX . S2HD0. with Source - $5000
SOLVE from S.E. Media - OS-9 Levels I and II only. A Symbolic Object/
Logic Verification St. Examine debugger. Including inline debugging,
disassemble and assemble. SOLVE IS THE MOST COMPLETE
DEBUGGER we have toot for the 6809 OS-9 series! SOLVE does it
all! With a rich selection of monitor, assembler, disassembler,
environmental, execution and other miscellaneous commands, SOLVE
is ihe MOST POWERFUL tool kit item you can own) Yet. SOLVE is
simple U> use! With complete documentation, a snap! Everyone who
has ordeied this package has raved 1 Sec review -68 Micro Journal -
December 1985 No 'blind' debugging here, full screen displays, rich
and complete in information presented. Since review in 68 Micro
Journal, this is our fastest mover!
levels I A II only ■ OS-9 $69.95
DISK UTILITIES
OS-9 VDisk from S.E. Media - For Level I only. Use ihe Extended
Memory capability of your SWTPC or Giinix CPU card (or similar
format DAT) for FAST Program Compiles, CMD execution, high spead
inter-process communications (without pipe buffers), etc. - SAVE lhai
System Memoiy. Virtual Disk size is variable in 4K increments up lo
960K. Some Assembly Required.
Level I OS-9 object $79 95. with Source $149 95
O-F from S.E. Media ■• Written in BASIC09 (with Source), includes:
REFORMAT, a BASIC09 Program that reformats a chosen amount of
an OS-9 disk to FLEX, SK-DOS Formal so it can be used normally by
FLEX. SK.DOS: and FLEX, a BASIC09 Program that does the actual
read or write function to the special O-F Transfer Disk: user-friendly
menu driven. Read Ihe FLEX. SKDOS Dirccloiy. Delete FLEX,
SK.DOS Files, Copy both directions, etc. FLEX. SKDOS users use
the special disk just like any other FLEX. SKDOS disk
OS-9 - 6909/68000 $79.95
[.SORT from S.E. Media - A SORT/MERGE package for OS-9 (Uvel I A
U only). Sons record* with fixed lengths or vaiiable lengths. Allows
for either ascending or descending son. Soiling can be done in either
ASCII sequence or alternate collating sequence. Right, lefl or no
justification of data fields available. LSORT includes a full set of
comments and errors messages.
OS-9 $95 DO
HIER from S.E. Media - HIER is a modern herarcnal storage system for
users under FLEX. SK-DOS It answers the needs of those who have
hard disk capabilities on their systems, or many files on one disk - any
size. Using HIER a regular (any) FLEX, SK.DOS disk (8 . 5 . hard
disk) can have sub directories By this method the problems of
assigning unique names to Files is less buidentomc. Different files with
ihe exact same name may be on the same disk, as long as ihey are in
different directories. For the Winchester uaerlhis became* a must. Sub
directories are Ihe modem day solution thai all current taige systems
use. Each directory looks to FLEX, SK-DOS like a regular file,
except they have the extension '.DIR'. A full set of directory handling
programs are included, making the operation of HIER simple and
straightforward. A special install package is included lo install HIER to
your particular version of FLEX, SK-DOS. Some assembly required.
Install indicates each byte or reference change needed. Typically • 6
byte changes in source (furnished) and one assembly of HIER is all that
is required. No programming requited!
FLEX ■ SK DOS $79.95
COPYMULT from S.E. Media -- Copy LARGE Disks to several smaller
disks. FLEX, SK-DOS utilities allow the backup of ANY size disk lo
any SMALLER size diskettes (Hard Disk to floppies, 8" lo 5", etc.) by
simply inserting diskettes a* requested by COPYMULT. No fooling
with dirccloiy deletions, etc COPYMULT.CMD understands normal
"copy" syntax and keeps up with files copied by maintaining directories
for both host and icceivuig disk syitem. Also includes BACKUP.CMD
to download any size "random" type file; RESTORE.CMD lo
restructure copied "landom" files for copying, or recopying back to ihe
noil system; and FREELDNK.CMD *s a "bonus" utility that "relinks"
Ihe free chain of floppy or hard disk, eliminating fragmentation.
Completely documented Assembly Language Source files included. ALL 4
Program (FLEX. SKDOS. S" or 5') $99.50
OiOS.I.S .SKTX)S
r.n.£x,u>ifeiri.EX
CO • Csk» Conautar 0»-«
CCf - Color CompuUr FLRX
South 'East Media
5900 Cassandra. Smith %£. - tfixjon. In. 37343
fli.i<tft i rrrj< , 4
■• Shipping ••
Add J* VSJk. (nirt. tl W)
Pari!** Sumw Add S%
tertian AlniBll Add IS*
Or C.O.D. Sklrwlm Oolj
*OS.»lai TradiMrlior Micro— rrmd Mcur*™!* .'Kl.KX arid IrnlKLEX ir< Trsd«marhjqfTghnkBlSjiltmi l^mmlUnu.'^k'IMls Ii I
ra nt Star. X Saftw r% Sjmtnw f mt ■.
34
April '89
66 Micro Journal
Tekphom: (615) 842-4600 SOU tfl 'EdS t ^Mcdla
OS -9, 'Um'JfLX, <J L'EX, S'K''DOS
Tc(e\: 5W600bbM)
faTQ {€15) 842-7990
COPYCAT from Lucid.ta - Pascal NOT required. Allows leading TSC
Mini-R.EX. SK-DOS. SSB-DOS68, and Digital Research CPfM Disks
whileoperaling under SK DOS . FLEXI.O. FLEX 2.O. or FLEX 9.0
wiih 6800 Of 6809 Systems. COPYCAT will not perform miracles, but.
between the program and the manual, you stand a good chance of
accomplishing a transfer. Also includes some Utilities to help out.
Programs supplied in Modular Source Code (Assembly Language) to
help solve unusual problems.
FLEX.SKDOS and CCF 5"$50.00 FLEX. SK DOS 8"-$65.00
VIRTUAL TERMINAL from S.E. Media ■ Allows one terminal to do the
work of several. The user may stan as many as eight tasks on one
terminal, under V1RWALTERMINAI. and switch back and foith
between tasks at will. No need to exit each one: Just jump back and
fouh. Complete with configuration program. *I"he hest way to keep up
with those background programs
6809 OS-9 & CCO . object only - $49.95
KLEX, SK DOS DISK UTILITIES from Computer Systems Consultants
Eight (8) different Assembly Language (with Source Code) FLEX.
SK-DOS Utilities for every FLEX, SK-DOS Users Tootbox: Copy a
File with CRC Eirors; Test Disk for errors; Compare two Disks; a fast
Disk Backup Program; Edit Disk Sectors: Linear \w Free-Chain on the
Disk; pint Disk Idcntilicaiion; and Son and Replace the Disk Dircctoiy
(in sorted order). — PLUS — Ten XBAS1C Programs including: A
BASIC Resequenccr with EXTRAS over "RENUM" like check for
missing label definitions, processes Disk to Disk instead of in Memory,
etc. Other programs Compare, Merge, or Generate Updates between
two BASIC Programs, check BASIC Sequence Numbers, compare two
unsbquenccd files, and S Programs for establishing a Master Dircctoiy
of several Disks, and sorting, selecting, updating, and printing paginated
listings of these files. A BASIC Cross-Reference Program, wiiuen in
Assembly Language, which provides an X-Ref Listing of the Variables
and Reserved Words in TSC BASIC. XBAS1C, and PRECOMPILER
BASIC Programs.
ALL Uliliiitt include Source (either BASIC or A.L. Source Cod*).
FLEX. SK-DOS and CCF - 15000
BASIC Utilities ONLY for UniFLEX - $30 00
MS-DOS lo FLEX Transfer Utilities to OS-9 For68XXX and CCOS-9
Systems Now READ - WRITE - D1R - DUMP - EXPLORE Fl-EX &.
MS-DOS Disk. These Utilities come with a rich set of options allowing
the transfer of text type files from/to FLEX A MS-DOS disks. >CoCo
systems require the DP. Johnson SDISK utilities and OS-9 and two
dnves of which one must be a "host" floppy.
'CoCo Version $69 95 68XXX Version $99 95
MISCELLANEOUS
TABULA RASA SPREADSHEET from Computer Systems Consultants
TABULA RASA is similar lo DESKTOP/PLAN; provides use of
tabular compulation schemes used for analysis of business, sales, and
economic conditions. Menu-diiven; extensive report-generation
capabilities. Requires TSCs Extended BASIC.
FLEX. SK-DOS and CCF . UniFl£X- $50.00. with Source . $100.00
DYNACALC - Electronic Spread Sheet for the 6809 and 68000.
UniFLEX- $395.00. FLEX, SK-DOS. OS-9 and SPECIAL CCF - $250.00
OS-9 68K -$299.00
FULL SCREEN INVENTORY/MRP from Computer Systems Consultants
Use the Full Screen Inventory System/Materials Requirement Planning
for maintaining inventories. Keeps item field file in alphabetical order
for easier inquiiy. Locale and/or piint records matching partial or
complete item, description, vendor, or auribtiies: find backorder or
below slack levels. Pnnl-ouls in item or vendor order. MRP capability
for the maintenance and analysis of Hierarchical assemblies of items in
the inventory file. Requires TSCs Extended" BASIC.
FLEX.SKDOS and CCF. UniFLEX - $50 00. *ilh Source . $100.00
FULL SCREEN MAILING LIST from Computer Systems Consultants -
The Full Screen Mailing Lisi System provides a means of maintaining
simple mailing lists. Locale all records matching on panial or complete
name, city, state, zip, or attributes for Listings or Labels, etc. Requires
TSCs Extended BASIC.
FLEX. SK DOS and CCF. UniFLEX- $50.00. w,th Source ■ $10000
DIET-TRAC Forecaster from S.E. Media - An XBASIC program that plans
a diet in terms of cither calorics and percentage of carbohydrates,
protcms and fats (C V 0%) or grams of Carbohydrate. Protem and Fat
food exchanges of each of the six basic food groups (vegetable, bread,
meal, skim milk, fruii and fat) for a specific individual. Sex, Age.
Height, Present Weight, Frame Size, Activity Level and Basal
Metabolic Rale for normal individual are taken into account. Ideal
weight and sustaining calories for any weight of the above individual
are calculated. Provides number of days and daily calendar after weight
goal and calorie plan is determined.
FLEX.SKDOS $59.95. UniFt£X ■ $89.95
GAMES
RAPIER - 6809 Chess Program from S.E. Media - Requires FLEX.
SK-DOS and Displays on Any Type Terminal. Features: Four levels of
play. Swap side. Point scoring system. Two display boards. Change
skill level. Solve Checkmate problems in 1-2-3-4 moves. Make move
and swap sides. Play while or black. This Is one of the strongest
CHESS programs running on any microcomputer, estimated USCF
Rating 1600 + (belter than most club' players at higher levels)
FLEX. SKDOS and CCF ■ $79.95
NEW
MS.DOSIFLEX Transfer Utilities For 68XXX and CoCo* OS-9 Systems.
Now Read, Write. DIR, Dump and Explore FLEX & MS-DOS Disks.
Suppled with a rich set of options lo explore and transfer text type Isles
from/to FLEX and MS DOS disks 'CoCo OS-9 requires SDISK
utilities & iwo floppy drives.
CCO $69 95 68XXX OS-9 $99 95
MS-DOS and Macintosh
Software at Discounted Prices
"Call for prices, il"ll be worth the savings."
(615) 842-4600
FAX (615)842-7990
AT>il<Mlli;Ua)ciub
O.OS-J.S.SK'DOS
t > FLEX, U • UniFLEX
QC* • Color CompuUr OS.«
CCF- Color Compear FLEX
B
South 'East Media
S900 Cassandra Smith J{£. ■ Xvpon, Tn. i 7i4i
motive arc 1
•• Shipping ••
Add 2* US.A. (mlo. SLS*)
rorrtan Surfoc. Add t%
Foritan Airmail Add 19%
Or CO.D. SolpploiOnljr
■05i-«IJ»Tridtm»rl<<?rMI<romr<irni Mnloml.-'H.HX «nd l.'nlH.HX »rt 1 r»drnurki ot Tmrinkjl Srnjnii 1 jmiulunlj-'S If IKBi li ■ I nJfmirl .Ulii.H Wl»»f f S}ll.mi tjrp.
68 Mcro Journal
April 89
35
FLEX 6809 DIAGNOSTICS Disk Drive Test
ROM Test, RAM Test
INTRODUCTION
The following ulilites are available on 68 Micro Journal
Reader Service Disk #34. However, they are being published
here as well because of the sharing spirit of the author:
Emery Korpi
40 Beatrice Ave.
Syossei, NY, 11791.
I, and thousands of loyal readers thank you Emery for your
willingness to shaie your efforts with all of us. It is that type
of spirit lhat has allowad us to survive. As a contributor
supported magazine we urge all our readers to do likewise. If
so, we will be around a long time to come.
Again, thanks - Emery!
DMW
DISC DRIVE TEST (DDT)
NOTES:
INTRODUCTION -
THIS PROGRAM HAS BEEN WRITTENTO AID IN THE ALIGN-
MENTOF 5 INCH* DISK DRIVES UNDER THE FLEX OP-SYSTEM.
IT ALLOWS FORTESTINGOF DRIVES O THROUGH 3 WITH THE
WD179X SERIES OF DISK CONTROLLERS IN ANY OF THE SYS-
TEM I/O SLOTS. THE PROGRAM MAY BE USED WITH EITHER
1MHZ OR 2MHZ CLOCKED SYSTEMS AND IS COMPATIBLE
WITH DC-I TO DC-4 OR FD-2 CONTROLLERS THIS PROGRAM
HAS THE FOLLOWING TEST CAPABILITIES .
1. DRIVE READY SIGNAL RESPONSE TIME
2. HEAD IjOAD DELAY TIME
3. BUSY SIGNAL RESPONSE TIME
4. DRIVE ROTATIONAL SPEED TEST
5. INDEX PULSE WIDTH TEST
6. TRACKO SWITCH ADJUSTMENT
7. DRIVE STEP TIME
8. TEST OF ALL DISK SECTORS
9. RADIAL ALIGNMENT
lO.READ/WRiTING/MODIFYING DATA
ON ANY SECTOR.
THIS PROGRAM ALSO CAN OPERATE WITH THE DYSAN
DIGITAL DIAGNOSTIC DISKS IN ORDER TO FIND;
1. RADIAL TRACK ALIGNMENT ERRORS (IN MILLI-1NCHES)
2. STEPPER MOrOR ACCURACY AND REPEATABILITY PROB-
LEMS
3. REDUCED AMPLITUDE SIGNAL PROBLEMS
4. AZIMUTHAL HEAD ALIGNMENT ERRORS
A. STARTING THE PROGRAM -
THE PROGRAM MAY BESTARTED IN EITHER OFTHREE WAYS.
THESE ARE;
1. DDT - THE OPERATOR WILL BE PROMPTED FOR THE DRIVE
NUMBER (0-3). THE SYSTEM CLOCK SPEED (1 OR 2 MHZ) AND
THE I/O QLOT THAT THE CONTROLLER IS INSTALLED IN.
2. DDT,# - THE PROGRAM WILL TEST DRIVE NO '#' AND AS-
SUMES A 1 MHZ CLOCK RATE AND I/O SLOT ONE. THESE
DEFAULT VALUES MAY BE CHANGED IN THE SOURCE PRO-
GRAM WHICH IS SUPPLIED.
3. DDT,>iile THEPROCRAMWILLBE PROMPTED THE
SAME AS IN DDT AND A COPYOF ALL TERMINAL DATA WILL
BE WRI1TEN INTo TEXT FILE file.
B. TEST OPTIONS -
THE OPERATOR OF THIS PROGRAM HAS THE OPTION OF
HALTING AFTER EACH TEST. IF THIS OPTION IS NOT TAKEN,
THE PROGRAM WILL PROCEED AUTOMATICALLY UNTIL A
FAILUREOR KEYBOARD ENTRY IS ENCOUNTERED; ATWHICH
POINT IT WILL HALT. THE PROGRAM WILL THEN GIVE THE
OPERATOR THE FOLLOWING OPTIONS:
1. RETRY - ENTERING T WILL CAUSETHE PROGRAM TO RE-
EXICUTE THE CURRENT TEST
2. CONTINUE - ENTERING 'T WILLCAUSETHE PROGRAM TO
CONTINUE TO THE NEXT TEST
3. EXIT - ENTERING '3»' WILL CAUSE A RETURN TO THE OP-
SYSTEM
C. DISK DRIVE TESTING PRINTOUT FORMAT
I. DRIVE MOTOR STATUS(E0X8)
A.READY RESPONSE TIME = XXXX.XX MSEC
B.BUSY RESPONSE TIME = XX USEC
36
April 69
68 Man Journal
C.HEAD LOAD DELAY TIME = XXXX XX MSEC
D.WRrrE PROTECT = Y/N
E INDEX PULSECOUNT = XX S/B GT 2
THESE TESTS ARE PERFORMED BY READING THE DISK CON-
TROLLER STATUS WHICH IS FOUND AT MEMORY LOCATION
E0X8.
- READY RESPONSE TIME IS THE TIME THAT THE READY
SIGNAL TAKES TO GO HI. IT IS THE TIME REQUIRED FOR THE
DRIVE MOTOR TO REACH rrs DESIGNATED SPEED.
- BUSY RESPONSE TIME IS THE TIME NECESSARY FOR THE
CONTROLLERTO DIGEST AN INSTRUCTION AND INDICATE IT
IS BUSY.
- HEAD LOAD DELAY TIME IS THE TIME ALLOTTED FOR THE
HEAD TO LOADBEFORE READING OR WRITING CAN PRO-
CEED.
- WRITE PROTECr INDICATES IF THE DISK IS WRITE PRO-
TECTED.
- INDEX PULSE COUNT COUNTS THE NUMBER OF INDEX
PULSES WHICH OCCUR IN THE ALLOTrED TIME SPAN. FAIL-
URE INDICATES NO DISK IN DRIVE. MOTOR FAILURE OR
CLUTCH FAILURE.
II. DRIVE SPEED TEST
PERIOD = XXXX.XX MSEC S/B 200 +/-
MSEC
OBTAINED WITH A PHYSICAL SWITCHPOINT MIDWAY BE-
TWEEN TRACKS AND 1.
V. STEP RATE TEST
TRACK STEP TIME = XXXX MSEC S/B LT 40 MSEC
THIS TEST FINDS THE DRIVE STEP TIME. THIS IS THE
SMALLEST TIME NECESSARY FOR THE DRIVE TO STEP FROM
ONE TRACK TO THE NEXT.
THIS TEST IS PERFORMEDB Y STEPPINGBETWEENTRACKS
32AND0ATDIFFERENTRATES. THERATEISCONSIDEREDTO
BESUCCESSFULIFTHETRACKOSWITCHHASBEENSEr. THE
STEP RATE IS FOUND BY A NINE1"H ORDER BINARY SEARCH
AS FOLLOWS:
TIME:=DELTA:=20.48MSEC
FORI = I THRU 9
DELTA := DELTA/2
IF SUCCESSFUL THEN
TIME :=TIME- DELTA
ELSE
TIME := TIME + DELTA
END IF
END FOR
THIS TECHNIQUE YIELDS A MEASUREMENT RANGEOF0TO4 1
MSEC WITH AN ACCURACY OF 0.08 MSEC.
THIS TEST MEASURES THE ROTATIONAL SPEED OF THE
DISKBYMEASURINGTHETIMEPERIODOFTHE INDEX TULSE.
MISADJUSTMENT IS A COMMON CAUSE OF SOFr DISK ER-
RORS. THE SPEED MAY BE ADJUSTED AND CHECKED WITH
THERErRYOPriON.
UI. INDEX PULSE WIDTH
WIDTH = XXXX.XX MSEC S/B 2.5-5.5 MSEC
THIS IS THE PULSE WIDrH OF THE SIGNAL GENERATED
WHEN THE INDEX HOLE PASSES IN FRONT OF THE INDEX
DETECTOR CIRCUITRY OF THE DRIVE.
IV.TRACK SWITCHTEST
A. STEPTIMEFROM TRACK TO SWITCH = XXXX.XX
B. STEP TIME FROM TRACK 1 TO SWITCH = XXXX.XX
C. SWITCHPOINT(A/A+B) = XX% S/B 5% TO 95%
VI DOUBLE DENSITY STATUS(EOX4)
A. RESTORE USING INTRQ(D6) G0/NG
B. READ SECrOR USING DRQ(D7) GO/NG
C. NO. BYTES READ = XXXX S/B 256 BYTES
SOME SYSTEMS USE THE STATUS WORD AT MEMORY
LOCAIION E0X4 FOR DISK READ AND WRITE OPERATIONS.
THIS TEST CHECKS THE FUNCTIONALITY OF THE TWO SIG-
NALS ASSOCIATED WITH THIS STATUS WORD.
VII. RADIAL ALIGNMENT TEST
1. CHECK ALL TRACKS
2. ALIGN
3. EXIT
4. CHECK SINGLE TRACK
5. NEXT TEST
6. PRINT SYMBOL TABLE
THIS TEST VERIFIESTHE POSITION OF THE TRACK MICRO-
SWITCH IS CORRECTLY ADJUSTED. THE TRACK 0' SIGNAL
STOPS THE CONTROLLER FROM STEPPING WHEN A RESTORE
TO TRACK COMMAND IS ISSUED.
THIS TEST DETERMINES THE TRACK O SWITCHPOINT POSI-
TION BY TIMING MEASUREMENTS. TIME MEASUREMENT
AREMADESTARTING FROM THE STEP COMMAND UNTILTHE
SWITCH TOGGLES WHEN:
A. STEPPING FROM TRACK TO I AND
B. STEPPING FROM TR ACK 1 TO 0.
THE SWITCHPOINT IS THE RATIO OFONE MEASUREMENT TO
THE SUM OF THE MEASUREMENTS (IE A/A+B).
FOR DRIVES USING PHOTO DIODE POSITION DETECTOR
SWITCHES. THIS TIMING TEST METHOD ACCURATELY RE-
FLECTS THE PHYSICAL SWITCHPOINT POSITION. MEASURE-
MENI"S OF 40-60% ARE TYPICAL FOR THIS TYPE OF DRIVE.
FOR DRIVES WITH A MECHANICAL SWITCH. THE MEAS-
UREMENI - IS INFLUENCED BY SWITCH SPRING TENSION.
TYPICAL MEASUREMENTS OF 5 20% MAY BE
-CHECK ALLTRACKSOR A SINGLE TRACK PRINrS. FOR EACH
SECTOR. AN •■ FOR 256 BYTE SECTORS OR V FOR 128 BYTE
SECTORS. THE ERROR CODE IS PRINTED FOR A SECTOR WITH
AN ERROR. THE ERROR CODES MAY BE PRINTED BY ENTER-
ING OPHON '6\ THETRACKS ARETESTEDOUTOFORDER.TO
TEST FOR STEPPER MOTOR SKIP ANDDIRECHONALOFFSErS.
- SECTOR SYMBOL TABLE:
• 256 BYTE SECTOR OK
. 128BYTESECTOROK
U 0-127 BYTES READ INTO BUFFER. STATUS OK
B 129255 B YTES READ INTO BUFFER. STATUS OK
O OVER 256 B YTES READ INTO BUFFER. STATUS OK
T TRACK NO ERROR. ON WRONG TRACK
N NO DATA ON TRACK OR UNFORMATrED TRACK
S MISSING SECTOR
C ID FIELD CRC ERROR
A ADDRESS MARK ERROR IN DATA FIELD
D DATA FIELD CRC ERROR
63 Mcro Journal
April '69
37
- ALIGNMENT MAY BE PERFORMED WITH EITHER: AN OP-
SYSTEM DISK COR DISK FROM ALIGNED DRIVE) OR WITH A
DYSAN DIGITAL DIAGNOSTIC DISK.
- USING THE OP-SYSTEM DISK:
I ADJUSTTHE STEPPER MOTOR CLOCK WISE UNTIL ABOUT
HALFOFTHESECrORS HAVE ERRORS AND MARKTHIS POSI-
TION.
2. ADJUST THE STEPPER MOTOR COUNTER CLOCKWISE
UNHLHALFOFTHE SECTORS HAVEERRORSANDMARKTHIS
POSITION.
3. CENTER THE STEPPER MOTOR BETWEEN THE TWO
MARKED POSmONS.
- USING THE DIGITAL DIAGNOSTIC DISKETIE(DDD)
A. REDUCTION OF SIGN AL STRENGTH TEST
1. 5/12 AMPLITUDE - ALTERNATE SECTORS OFF
SET BY 7 MILS
2. 4/12 AMPLITUDE - ALTERNATE SECTORS OFF
SETBY8MILS
3. 3/12 AMPLITUDE • ALTERNATE SECTORS OFF
SETBY9MILS
THE HEAD PICKS UP A SIGNAL IN A 12 MIL WIDETRACK ON
THE DISK. ALTERNATESECTORS ARE DISPLACED BY7. 8 AND
9 MILS ON TRACKS 21.24 AND 27 RESPECTIVELY TO PRODUCE
AN EFFECTIVE REDUCTION IN SIGNAL STRENGTH. THIS TEST
CHECKS FOR WEAK DRIVE ELECTRONICS, HUB CENTERING,
STEPPER PLAY, NEED FOR HEAD CLEANING AND MISAD-
JUSTED HEAD LOAD PADS.
VIII. READ/WRITE SECTOR TEST
1. PATTERN 1
2. PATTERN 2
3. MODIFY BUFFER(M)
4. EXIMINEBUFFER(E)
5. READ SECTOR(R)
6. WRITE SECTOR(W)
7. NEXT SECTOR(N)
8. RETURN TO FLEX(F)
9. HELP(H)
- PATTERN 1 INITIALIZES THE BUFFER TO HEXADECIMAL
BDBDBD...
- PATIERN 2 INITIALIZES THE BUFFER TO HEXIDECIMAL
242424...
- MODIFY BUFFER ALLOWS EDITING OF THE SECTOR BUFFER
USING:
N = NEXTBYTE
L = LAST BYTE
RTN = EXIT MODIFY
- EXIMINE BUFFER PRINTS THE 256 BYTE SECTOR BUFFER IN
A HEXIDECIMAL AND ASCII FORMAT
- READ SECTOR READS THE SELECTED SECTOR INTO THE
SECTOR BUFFER AND DISPLAYS THE SECTOR BUFFER
- WRITE SECTOR WRITES THE CURRENT CONTENTS OF THE
SECTOR BUFFER INTO THE SELECTED SECTOR
- NEXT SECTOR READS THE NEXT SECTOR IN THE FILECHAIN
• RETURN TO FLEX ENDS THE PROGRAM
- HELP DISPLAYS ALL TEST VIII TEST OPTIONS
B. TRACK OFFSET IN MILLI-INCHES
TRY STEP DIRN=IN STEP DIRN=OUT LIMITS GO/NG
1. +XX.XMILS
2. +XX.X MILS
3. +XX.XMILS
4. +XX.XMILS
5. +XX.X MILS
+XX.X MIIS
+XXXMILS
+XX X MILS
+XX.X MILS
+XX.X MILS
+/-1.5 GO
+/-1.5 GO
+/-1.5 GO
+/-1.5 GO
+/-1.5 GO
•NOTE-SOURCE PROGR AM MODIFICATIONS ARE NECESSARY
TO TEST 8 INCH DISK DRIVES.
•DIGITAL DIAGNOSTIC DISKETTE' IS A TRADEMARK AND
•DYSAN' IS A REGISTERED TRADEMARK OF DYSAN CORP.
1244 REAMWOOD AVE. SUNNYVALE,
CA, 94086 : 408-734-1634; 800551-9000
THERE ARE SIX TRACKS AVAILABLE TO TEST RADIAL
ALIGNMENT. THESE ARE TRACKS 0, 5, 16, 19, 30 AND 39. THIS
TEST CHECKS THE SELECTED TRACK WITH PROGRESSIVE
OFFSETS AND CALCULATES THE DISTANCE THE HEAD IS OFF
OF CENTER. THIS IS DONE FROM TWO DIRECTIONS IN ORDER
TO CHECK FOR H YS1ERISIS OR STEP DIRECTION DEPENDENT
PLAY.THE MEASUREMENT RANGE IS -6 TO +6 MILS WITH AN
ACCURACY OF +/0.5 MILS.
C. AZIM UTHAL HEAD ANGLE TEST
HEAD ANGLE = XX.X MIN S/B +/- 12 MIN
THE DISK HEAD READS AND WRTTES ON THE RADIAL
CENTERLTNE OF THE TRACK. THIS TEST MEASURES THE
SKEW ANGLE OF THE HEAD RELATIVE TO THE TRACK CEN-
TERLINE BY TESTING SECTORS WITH PROGRESSIVE ANGLE
OFFSETS ON TRACK NO. 34. MEASUREMENT RANGE IS -18 TO
+18 MINUTES WITH AN ACCURACY OF +/-1.5 MINUTES.
DYSAN DIGITAL DIAGNOSTIC DISKS PART NUMBERS:
5.25" 48TP1 SSSD(*508-100) SS()D(#5<»-200) DSSD(#50g-30Q) DSDIW508-
4(10)
5.25" 96TPI SSSD(#506.I(X>) SSI>D<»506-200) DSSD(#506-30Q) DSDD(»506-
400)
8.00" 48TPI SSSD(#808-IOO) SSDD(#8O8-200) DSSD(*808-300) DSDD<«808-
400)
FLEX 1 IS A TRADEMARK OFTECHNICAL
SYSTEMS CONSULTANTS
EOF
38
Apnl'89
68 Micro Journal
DDT
DISK DRIVE AND CONTROLLER TEST PROGRAM
(5.25 DRIVES, DC-1 TO DC-4 CONTROLLERS)
THIS PROGRAM TESTS SINGLE OR DOUBLE DENS
DISKS OPERATE ON THE SPECIFIED DRIVE.
THIS PROGRAM ALLOWS FOR TRK ADJUSTMENT.
ROTATIONAL SPEED ADJUSTMENT AND RADIAL
ALIGNMENT USING A FORMATTED DISK FROM AN
ALIGNED DRIVE OR A DIGITAL DIAGNOSTIC DSK
EXAMPLE:
ODT.D
DDT
DDT > FILE
WRITTEN BY:
(TESTS DRIVE 0)
(ALLOWS CHOICE OF
CONTROLLER I/O SLOT)
(BUILDS PRINT FILE)
EMERY KORP1
40 BEATRICE AVE
SYOSSET.NY 11791
VERSION-2 ; DATE-8/87
REFRENCES
€502 ASSEMBLY LANGUAGE SUBROU-
TINES
BY LANCE A. LEVENTHAL AND WINTHROP SAVILLE
PUB. OSBORNE/MCGRAW-HILL 1982
THE FLEX DISK OPERATING SYSTEM
BY TECHNICAL SYSTEMS CONSULTANTS, INC
OR. COBB'S JOURNAL
PEOPLE'S COMPUTER COMPANY
VOLUME 8, ISSUE 12, DECEMBER 1983
68' MICRO JOURNAL
COMPUTER PUBLISHING INC.
2/84, 6/84, 6/84 ISSUES
NOTE: TO CUSTOMIZE THE DEFAULT MODE FOR
YOUR SYSTEM, CHANGE THE SYSTEM
DEPENDENT VARIABLES.
*
*
•
WARMS
•
FLEX LOCATIONS *
EQU
SCD03
SBUG
EQU
SF814
FMS
EQU
SD406
FMSCLS
EQU
SD403
FCB
EOU
SC840
RPTERR
EQU
SCD3F
GETFIL
EQU
SCD2D
SETEXT
EOU
SCD33
TTYEOL
EQU
SCC03
NXTCH
EQU
SCD27
LNPNTR
EQU
SCC14
MB MEND
EQU
SCC2B
PSTR
EQU
SCD1E
GETCHR
EQU
SCD15
DRVTST ORG $1000
BRA START0
VK FCB 2 VERSION
START0 LBRA START
•
•
•
TRMSTA
*
SYS
DEPEND VARS. *
EQU
SE004 TERMINAL STATUS
TRMDAT
EQU
$B005 TERMINAL DATA
DRVADD
FDB
SE010 DISK CONTROL A0DR
CLKFLG
FCB
0-lMHZ, 1-2MHZ
T7SECT
FCC
SOA
,$14, $12, $24
*
•
*
SSSD.DSSD.SSDD.DSDD SECTORS
*
PROGRAM VARIABLES *
PADDR
FDB
$3000
PRTFLG
FCB
SAVLNP
RMB
1
DRVNO
FCB
1
DRVCMD
FCB
1
CNTR
FCB
1
DIGNO
RMB
3
COUNT
RMB
3
TEMP
FCB
1
TEMP2
FCB
1
TEMP3
FCB
1
TIME
RMB
2
BLSB
RMB
2
BINARY LSB
DMSB
RMB
2
DECIMAL MSB
BNCTIM
FCB
1
BOUNCE TIME
ERRFLG
FCB
1
ERROR FLAG
RETRY
RMB
2
RETEST ADDR
DVR
RMB
3
DIVISOR
DVD
RMB
3
DIVIDEND
T6FLG
RMB
1
TEST 6 PASSED
DDFLG
RMB
1
TEST 6 GO FLG
MAXSEC
RMB
1
1 SECS/TRK
FORMAT
RMB
1
DISK FORMAT
T70PTN
RMB
1
T7 OPTION
DNSFLG
RMB
1
1-DD
TRK
RMB
1
TRACK NO
SEC
RMB
1
SECTOR NO
ADDR
RMB
2
MEMORY ADDRESS
LIMT
RMB
2
LO LIMIT
STPSIZ
RMB
2
CONTROLLER STEP SIZE
STPREF
RMB
2
TIME TO TRKD SWITCH
STPCMP
RMB
2
T5 MEASUREMENT
RSLTN
RMB
1
OFFSET RESOLUTION
T7CNT
RMB
1
LOOP COUNTER
PCNT
RMB
1
POSITIVE OFFSET
NCNT
RMB
1
NEGATIVE OFFSET
LENGTH
RMB
1
BYTES TO DIV
LCOUNT
RMB
2
HIDE1
RMB
3
HI0E2
RMB
3
RMOPTR
RMB
2
REMAINDER ADDR
TMPPTR
RMB
2
TEMP ADDR
DVRPTR
RMB
2
DVR POINTER
DVDPTR
RMB
2
DVR POINTER
•
•
•
•
PROGRAM MESSAGES *
TITLE FCC "DISK DRIVE TEST PROGRAM IREV-8/87] ' , 4
USGERR FCC 'Usage: DDT (, drive) ( > print file) ', 4
SLTMSG FCC 'DISK CONTROLLER IN SLOT (0-7, 1-STD) 7 ',4
SLTERR FCC 'INVALID DISK ADDRESS, RETRY(YZN)? ',4
DRVMSG FCC 'DRIVE NO. (0-3)? ',4
CLKMSG FCC 'SYSTEM CLOCK RATE (1-1MHZ. 2-2MHZ) 7 ',4
HLTMSG FCC 'HALT AFTER EACH TEST (Y/N) 7 ',4,
DSKMS1 FCC 'INSERT DISK IN DRIVE '
DSKMSH FCC ' , HIT RTN TO CONTINUE' , 4
68 Micro Journal
April '88
39
T1MSG FCC
T1AMSG FCC
T1AMSH FCC
T1BMSG FCC
T1BMSH FCC
T1CMSG FCC
T1CMSH FCC
T1DMSG FCC
T1DMSH FCC
T1EMSG FCC
T1EMSH FCC
T2MSG FCC
72AMSG FCC
T2AMSH FCC
OPTMSG FCC
\4
T3MSG FCC
T3AMSG FCC
T3AMSH FCC
NUL
GTHN
T4MSG
T4AERR FCC
TIMES', 4
T4AM1
T4AH3
T4BM1
T4BM3
T4CM1
T4CH2
RESMSG FCC
T5MSG FCC
T5MSH
T5MSI
T5EHSG FCC
RATBL FCC
T6MSG
TfiMSl
T6MS2
T6MS3
T SMS 3 A FCC
INTDAT FCC
NGO
OK
T7MSG
T7MSG1 FCC
3. EXIT '
T7MSH1 FCC
TEST '
T7MSH2 FCC
T7FORM FCC
T7SYTB FCC
SECTOR'
T7SYTC FCC
T7SYTD FCC
T7SYTE FCC
T7SYTF FCC
T7SYTG FCC
T7SYTH FCC
T7SYTI FCC
T7SYTJ FCC
T7SYTK FCC
T7SYTL FCC
T7TRK FCC
T7TNO FCC
T7CHSG FCC
UNTIL'
T7CM5H FCC
T7CMS1 FCC
CLOCKWISE'
T7CKS2 FCC
T7CMS3 FCC
T7CMS4 FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
FCC
SOD.SOA, 'I. DRIVE MOTOR STATUS (E0XB» ' , 4
' A. READY RESPONSE TIME - '
> 0000.00 MSEC S/B L? 620 MSEC , 4
' B. BUSY RESPONSE TIME - '
0000', 0,' 00 USEC S/B LT 34 USEC , 4
' C. HEAD LOAD DELAY TIME - '
' 0000.00 MSEC S/B L? 200 MSEC , 4
D. WRITE PROTECT - '
' \4
E. INDEX PULSE COUNT - •
• S/B GT 2', 4
$0D,S0A, 'II. DRIVE SPEED TEST' , 4
• PERIOD • '
'0000.00 S/B 200 + /-1 MSEC, 4
$0D,S0A, ' OPTIONS: 1. RETRY 2. CONTINUE
T7CMS5 FCC 'SWITCH POINT S/B *
T7CMS6 FCC '0000' , $00, ' 00%' , 4
T7MS2 FCC SOD, S0A, 'ENTER DISK TYPE' , SOD, S0A, '
SYSTEM DISK'
T7MS2A FCC SOD, S0A, '
T7MS3 FCC 'WHICH SIDE
T7MS4 FCC S0D.S0A, 'A.
TESTS' ,$0D,$0A
2. DIGITAL DIAGNOSTIC DISK
(0 OR 1)7 ',4
REDUCTION OF SIGNAL STRENGTH
OP-
',4
1. 5/12 AMPLITUDE - ALTERNATE SECTORS
MILS', 4
4/12 AMPLITUDE
- ALTERNATE SECTORS
SOD.SOA, 'III. INDEX PULSE WIDTH' , 4
' WIDTH - '
'0000.00 MSEC S/B 2.5-5.5 MSEC , 4
0,0,0
'GT •
$0D,$0A, 'IV. TRACK SWITCH TEST' , 4
'TRK SWITCH FAULT; SHOULD TOGGLE GT 5
3/12 AMPLITUDE - ALTERNATE SECTORS
LIMITS
A. TIME FROM TRACK TO SWITCH - >
' 0000.00 MSEC ,$0D,$0A
B. TIME FROM TRACK 1 TO SWITCH - '
' 0000.00 MSEC, SOD, S0A
C. SWITCH POINTU/A+B) - '
'0000', $00, '00% S/B 5-95%', 4
BUSY STUCK HI AFTER RESTORE' , 4
SOD.SOA, 'V. TRACK STEP TIME TEST' , 4
STEP TIME - '
'0000.00 MSEC S/B LT 40 MSEC , 4
' SEEK TO TRACK TIMEOUT' , 4
$0F, SAO, $07, $D0, $03, $E8, $01, $F4, $00, $FA
$0D,$0A, 'VI. DOUBLE DENSITY STATUS (£0X4)
' A. RESTORE USING INTRQID6) - ',4
B. READ SECTOR USING DRO(D7) - >, 4
' C. NO. BYTES READ - '
'0000' ,$00, '00 S/B 256 BYTES', 4
'101'
'NG'
'OK'
$0D,$0A, 'VII. RADIAL ALIGNMENT TEST'
'ENTER-1. CHECK ALL TRACKS 2. ALIGN
T7MS5 FCC
OFFSET'
T7MS5A FCC ' BY 7
T7MS6 FCC ' 2.
OFFSET BY 8 '
T7MS6A FCC 'MILS' ,
3.EXITI7MS7 FCC ' 3.
OFFSET BY 9 '
77MS7A FCC 'MILS', 4
T7MSB FCC $0D,$0A, 'B. TRACK OFFSET IN MILLI-
INCHES(MILS)' ,4
T7MS9 FCC 'TRACK NO. (00,05,16, 19,30,39) 7 ',4
T7MS10 FCC 'TRY STEP DIRN-IN STEP DIRN-OUT
GO/NG'
T7MS1Z FCC $0D,$0A
T7MS1A FCC
T7MS11 FCC
T7MS12 FCC ' *XX.X ',4
T7MS13 FCC 'MILS ',4
T7MS14 FCC
T7MS15 FCC
T7MS16 FCC
T7MS17 FCC
T7MS18 FCC
T8PROM FCC
T8MSG
T8SYM2
— ',4
' X.
' *XX.X
'MILS
GO' ,
$0D,$0A,
T8SYM
4 T80PS
C. AZIMUTHAL HEAD ANGLE TEST' , 4
HEAD ANGLE -' , 4
MIN S/B ♦/- 12 MIN',4
-1.5 TO +1.5* ,4
• ',4
FCC SOD, $0A, 'VIII. READ/WRITE SECTOR TEST' , 4
FCC '0123456789ABCDEFNL' , SOD, 4
FCC ' 12MERWNFHB' ,4
FCC 'ENTER OPTION: 1-PATTERN 1 2-PATTERN 2'
M-MODIFY PATTERN E-EXAMINE
TBOPS1 FCC
PATTERN' , SOD, $0A, ' R-READ'
' SECTOR W-WRITE SECTOR N-NEXT SECTOR
' H-HELP B-BACK TO TEST VII', 4
'BYTE NO. (00-FF) ? ', 4
'CHANGE ',4
'OPTIONS: N-NEXT BYTE L-LAST BYTE RTN-
$0D,$0A,'
4. CHECK SINGLE TRACK 5. NEXT
'6. PRINT SYMBOLS ',4
'ENTER FORMAT-l.SSSD 2.DSSD 3.SSDD 4.DSDD
'SYMBOL TABLE! ' , SOD, $0A, *
$0D,$0A,' , - VALID 128 BYTE SECTOR'
$0D,$0A, ' T - TRACK NUMBER ERROR'
$0D,$0A, ' C - ID CRC ERROR'
S0D,$0A, ' N - NO DATA ON TRACK'
$0D,$0A, ' S - MISSING SECTOR'
$0D,$0A, ' A - NO DATA ADDR MARK'
$0D,$0A, ' D - DATA CRC ERROR'
$0D,$0A, ' O - OVER 256 BYTES'
$0D,$0A, ' B - BETWEEN 129-255 BYTES'
$0D,$0A, ' U - UNDER 128 BYTES' , 4
TRACK (00-39) 7 ',4
'TRACK 00 ',4
$0D,$0A, 'A. ADJUST STEPPER MOTOR CLOCKWISE
' HALF OF THE SECTORS HAVE ERRORS' , 4
SOD.SOA, 'B. ADJUST STEPPER MOTOR COUNTER-
' UNTIL HALF OF THE SECTORS HAVE ERRORS' , 4
$0D,$0A, 'C. ADJUST STEPPER MOTOR SO IT IS'
' CENTERED BETWEEN POINTS A. AND B.',$0D,$0A
T80PS2 FCC
FLEX'
TBOPS3 FCC
TBMSG1 FCC
TBMSG2 FCC
$0D,$0A TBMSG3 FCC
EXIT', 4
T8MSG4 FCC
TBMSG5 FCC
TBMSHS FCC
T8MSG6 FCC
«0 00 00 00'
- VALID 256 BYTZ8MSH6 FCC ' AAAAAAAAAAAAAAJU ' , 4
T8MSG7 FCC SOD, S0A, • SECTOR (01-36) ?
TBMSG8 FCC 'SECTOR READ ERROR' , 4
•BYTE 00
•BYTE:
' IB »C
•X0-XF
00 ',4
10 II 12 13 14 15 16 17 18 19 »A'
10 «E IF ASCII', 4
00 00 00 00 00 00 00 00 00 00 00 00
T8MSG9 FCC
T8MS10 FCC
TBMSll FCC
TBMS12 FCC
T8MS13 FCC
T8MS14 FCC
'WRITE PROTECT ON' , 4
'WRITE ERROR', 4
•SECTOR VERIFIED' , 4
'TRACK 00 SECTOR 00'
'AK£ YOU SURE1Y/N)? '
■SECTOR OUT OF RANGE'
BFULL FCC $0D,$0A, 'BUFFER FULL-SAVING' , 4
Aprt'M
UMcroJttaTMl
■
«
• PROGRAM SUBROUTINES •
•INCHNE-INPUT CHARACTER, NO ECHO
INCHNE
LOA
TRMSTA
TERMINAL STATUS
BITA
• $01
DATA7
BEQ
INCHNE
NO
LDA
TRMDAT
GET CHARACTER
ANDA
IS7F
RTS
INCH
LDB
TRMSTA
BITB
• 501
BEQ
INCH
LDA
TRMDAT
ANDA
• $7F
JSR
OUTCH
RTS
OUTCH
PSHS
B,Y
LDB
PRTFLG
BEQ
OUTCH1
LDY
PADDR
CMPA
ISO A
BEQ
OUTCH1
CMPY
MEMEND
BUFF FULL?
BNE
OUTCHO
PULS
B, Y,X
LDX
IBFULL
JSR
PSTR
JMP
EXTO
OUTCHO
STA
,* +
STY
PADDR
OUTCH 1
LDB
TRMSTA
BITB
IS02
BEQ
OUTCH1
STA
TRMOAT
PULS
B,Y,PC
•FILCHK-PUTS
FILE NAME INTS FCB
FILCHK
LDX
LNPNTR
SAV FIL NAM
STX
SAVLNP
LDX
• FCB
JSR
GETFIL
BCS
FILERR
LDA
11
FCB<.TXT
JSR
SETEXT
INC
PRTFLG
RTS
*
FILERR
PULS
X
JSR
RPTERR
JSR
FMSCLS
JMP
WARMS
•CHKIN
-CHECK
CHARICTER IS IN RANGE, ECHO
CHKIN
STA
HI + 1 1
JPPER LIMIT
STB
LO+1 LOWER LIMIT
CHK1
JSR
INCHNE
GET CHARACTER
LO
CMPA
• SFO
COMPARE UPPER
BLT
CHKER
HI
CMPA
• SOD
COMPARE LOWER
BGT
CHKER
BRA
CHKOK
CHKER
LDA
• 507
BELL
JSR
OUTCH
BRA
CHK1
CHKOK
JSR
RTS
OUTCH
OUTPUT CHARACTER
•INCMP
-INPUT CHAR AND COMPARE TO CHARS
INCMP
CLR
TEMP
CHR POINTER
JSR
INCHNE
GET CHAR
INCMP1
CMPA
,x
CHAR?
BEQ
INCMP3
INC
TEMP
LDB
, X*
EOF?
CMPB
• $04
BNE
INCMP1
LOOP
INCMP2
LDA
• 50?
BELL
INCMP 3
LDB
TEMP
JSR
OUTCH
PRINT
RTS
•HEXCON-CONVERTS *A"
REG TO ASCII
•MSB IN M(U)
, INC U:
LSB IN M(U), INC
HEXCON
PSHS
A
STORE BYTE
ASRA
GET MSN
ASRA
ASRA
ASRA
BSR
HEXPUT
CONV TO ASCII
STA
,u+
STORE MSB CHAR
PULS
A
READ BYTE
BSR
HEXPUT
CONV TO ASCII
STA
,u+
STORE LSB CHAR
RTS
HEXPUT
ANDA
l$DF
ADDA
• $30
CMPA
• $39
BLS
OP I
ADDA
• $07
CONV TO LETTER
OP1
RTS
•BDCON-BINARY TO DECIMAL CONV.
•X-BINARY MSB,U>DECIMAL LSB
•B-NO. OF BINARY BYTES ON ENTRY
•B-NO.
OF DECIMAL BYTES ON RETURN
BDCON
BRA
BDS1
BBYTES
RMB
1
NO OF BINARY BYTES
DLSB
RM8
2
LOCATION OF BCD LSB
BBCNTR
RMB
1
L2 COUNTER
DBYTES
RMB
1
NO OF DECIMAL BYTES
CCREG
RMB
1
TEMP CONDITION CODE
L3CNTR
RMB
1
LOOP COUNTER
*
BDS1
LOA
• $01
STA
DBYTES
SET NO DEC BYTES
STB
BBYTES
SET NO BIN BYTES
STU
DLSB
DECIMAL LSB POINTER
CLR
, U
LI
LDA
l$08
NO BITS PER BYTE
STA
BBCNTR
SET COUNTER
L2
LDA
LSLA
,x
LOAD BIN BYTE
GET MS BIT
STA
,x
SAVE BIN BYTE
LDU
DLSB
SET U TO DLSB
LOB
l$00
CLEAR L3 CNTH
STB
L3CNTR
L3
LDA
.u
GET DEC BYTE
ADCA
,U
C+2 (DEC BYTE)
TFR
CC,B
STORE CARRY
STB
CCREG
DAA
DEC ADJUST
STA
.U
STORE RESULT
TFR
CC,B
ORB
CCREG
ANY CARRIES?
LEAU
-1,U
POINT TO NEXT DBYTE
INC
L3CNTR
INC COUNTER
LDA
L3CNTR
CMPA
DBYTES
DECIMAL MS BYTE?
BNE
OUT3
ANDB
• $01
CARRY?
BEQ
L2END
NO
INC
DBYTES
NEED MORE SPACE
CLR
,U
CLEAR SPACE
STARTING AT IX) OUT3
TFR
B,CC
RESTORE CARRY
BRA
L3
L2END
DEC
BNE
BBCNTR
L2
LOOP COUNTER
L3END
DEC
BEQ
LEAX
BBYTES
FIN
1,X
GET NEXT BIN BYTE
66 Mere Journal
Aprt -as
41
BRA LI
FIN LDB DBYTES
RTS
•DBCON-DECIMAL TO BINARY CONV .
•X-DECIMAL MSB, U-BIN LSB
•B-NO OF DEC BYTE-ON ENTRY
•B-NO DF BIN BYTES ON RETURN
DBCON LDA IS01 INIT BIN BYTES
STA BBYTES
STB DBYTES NO DEC BYTES
STU BLSB
STX DMSB
DBL1 LDA IS08 HO OF BITS
STA BBCNTR
DBL2 ANDCC »S00 CLR CARRY
LDB DBYTES
DBL3 JSR DBSHR RT SHFT
LDA ,U GET BIN NO
RORA
STA , U
LDX DMSB
DEC BBCNTR
BNE DBL2
NOP
DBL4 LEAX 1,X INC X
STX DMSB
DEC DBYTES NEXT BYTE?
BEQ DBOUT FINISH
LDA ,X GET BYTE
BED DBL4 ZERO?
LEAU -1,0 NEXT BIN BYTE
INC BBYTES
BRA DBL1 SHIFT DEC
DBOUT LDB BBYTES
RTS
•DEC AD J- IF BCD CHR GE 6, ADD 3
DECADJ PSHS A
ANDA ISOF LS ND
CMPA »$08
BLO DCAS1
SUBA »$03
DCAS1 STA TEMP
PULS A
ANDA »SFD MS NO
CMPA #$80
BLO DCAS2
SUBA »S30
DCAS2 ADDA TEMP
RTS
•DBSHR-ROTATE LS BIT INTO CARRY
DBSHR LDA , X GET DEC BYTE
RORA
PSHS CC CARRY
JSR DECADJ
STA ,X+ RESTORE DEC
PULS CC
DECB BIT CNTR
BNE DBSHR
RTS
•GETDEC-TAKBS TMO KEYBD INPUTS, CONV TO BIN * IN A
GETDEC LDD #$3930 GET MSB
JSR CHKIN
ASLA PUT IN MSB
ASLA
ASLA
ASLA
STA TEMP
LDD #$3930 GET LSB
JSR CHXIN
ANDA #$0F ZERO MSB
ORA TEMP
STA TEMP
LDU ITEMP2 BIN I
LDX |TEMP DEC I
LDB #$01 CONV 1 BYTE
JSR DBCON
LDA TEMP 2
RTS
•XFER-TRANSFER DATA; A-l BYTES,
•X-START OF SOURCE DATA, U-START OF DESTINATION
XFER LDB ,X+ GET CHAR
STB , U + STORE CHAR
DECA COUNTER
BNE XFER
RTS
•TIMER-20USEC TIMING LOOP TO COUNT UNTIL
•BIT IN 'A' IS LO IB-27) OR HI IB-26)
•RESULTS STORED AT COUNT+1
TIMER STA BIT + 1 TIMED BIT LOCN
STB BRHILO TIMEOUT ON 1/0
LDX ($0001 INIT COUNTER
TCMD LDA l$0F RESTORE
STA 8,Y CMD REG
TLOOP LDB 8,Y STATUS
BIT BITB l$00 CHK BIT
BRHILO BRA TIMOUT COMPARE
NOP DELAY
LEAX 1,X INC CNTR
BNE TLOOP LOOP
MAXTIM LEAX -1,X REMOVE OFFSET
STX COUNT+1 STORE RESULT
LDX IGTHN GET UPDATE
BRA TCI CONTINUE
TIMOUT LEAX -1,X REMOVE OFFSET
STX COUNT+1 STORE RESULT
LDX INUL GET UPDATE
TCI LDA #$03 NO OF BYTES
JSR XFER UPDATE MSG
LDA #$O0 INTERRUPT CMD
STA 8,Y CMD REG
JSR DELTS 1/10 SEC DEL
RTS
•UPDMSG-UPDATE MESSAGE; TAKES DATA IN
•COUNT, CONVERTS TO DECIMAL DATA IN MSG
UPDMSG PSHS U TEMP STORE U
LDA #$00 CLR SCRATCH
STA COUNT BIN MS BYTE
STA DIGNO DECIMAL I
STA DIGNO+1
ANDCC #$00 CLR CARRY
LDX (COUNT BINI SETUP
LDU #DIGNO+2 DEC( SETUP
LDB #$03 NO OF BYTES
JSR BDCON CONVERT
PULS U RESTORE MSG PNTR
LDA DIGNO GET MSB
JSR HEXCON CON+UPDATE
LDA DIGNO+1 GET NEXT BYTE
JSR HEXCON CON+UPDATE
LEAU 1,U SKIP DEC PT
LDA DIGNO+2 GET LAST BYTE
JSR HEXCON CON+UPDATE
RTS
•CLKCMP-COMPENSATION FOR CLOCK RATE
CLKCMP LDA #$00 CLR SCRATCH
STA COUNT CLR MS BYTE
LDA CLKFLG
BNE CLKC1 SKIP IF 2MHZ
ANDCC #$00 CLR CARRY
ROL COUNT+2 CNT:-2<CNT)
ROL COUNT+1
ROL COUNT
CLKC1 RTS
•PASFAL-CHECK TEST LIMITS, SET ERRFIC IF NG
PASFAL CMPD COUNT+1 HI LIM OK?
BHS PSF1 OK
Aprf'88
68 Mcro Journal
INC
ERRFLG
ERR
STA
OPTDIR+1 JUMP TABLE
PSF1
LDD
LIMT
GET LO LIMIT
OPTDIR
BRA
OPTDIR
JUMP
CMPD
COUNT+1
LO LIM OK?
BRA
OPT1
BLS
PSF2
OK
BRA
OPT2
INC
ERRFLG
ERR
BRA
OPT3
PSF2
LOA
COUNT
MSB-OT
OPT1
PULS
X
BEQ
PSF3
OK
LDA
ISOD
INC
ERRFLG
ERP
JSR
OUTCH
PSF3
RTS
LDB
B, Y
•TESTOK-CHECK IF TEST GO, OPTIONS IF NOGO
JSR
DELHS
TESTOK
JSR
PSTRNG
PiUNT
LDX
RETRY
LOA
ERRFLG
ERROR?
JMP
,x
BEQ
OKOUT
OPT2
CLR
ERRFLG
JSR
OPTION
RTS
OKOUT
RTS
OPT3
PULS
X
CLR RTS ADDR
•DELAY
-56USEC DELAY
JSR
PCRLF
DELAY
LBSR
DEL2B
*. .PROGRAM EXIT
DEL2B
LBSR
DEL14
EXIT
JMP
EXTO
DELI 4
LBSR
DEL3
EXTO
TST
PRTFLG
DEL3
RTS
BEQ
EXT2
•DELHS
-HALF
SECOND DELAY
LDX
IFCB
DELHS
PSHS
D
LDY
SAVLNP
FILE NAME
JSR
DELTS
STY
LNPNTR
JSR
DELTS
JSR
GETFIL
JSR
DELTS
BCS
OPTERR
LDA
ISO?
LDA
11
DELL1
LOB
B,Y
READY?
JSR
SETEXT
BITS
IS80
LDA
12
OPN TO MR
BEQ
DELOT
STA
,X
JSR
DELTS
JSR
FMS
DECA
BEQ
EXT1
BNE
DELL1
LDA
1,X
IF FIL EXISTS!
DELOT
PULS
RTS
D
CMPA
BNE
13
OPTERR
•DELTS
-TENTH
SECOND
DELAY
LDA
112
DELETE FILE
DELTS
PSHS
X
STORE X
STA
O.X
tst
CLKFLG
»
JSR
FMS
BNE
DlT
BNE
OPTERR
LOX
IS3333
INIT CNTR
LDY
SAVLNP
RESTOR FIL NAM
BRA
D2T
STY
LNPNTR
D1T
LDX
IS6666
JSR
GETFIL
D2T
LEAX
-l.X
DEC CNTR
BCS
OPTERR
BNE
D2T
LOOP
LDA
11
PULS
X
RESTORE X
JSR
SETEXT
FCB<.TXT
RTS
LDA
12
OPN TO WRITE)
•PCRLF
-CARRAGE RTN.LINE FEED
STA
0,X
PCRLF
LDA
ISOA
JSR
FMS
JSR
OITCH
BNE
OPTERR
LDA
ISOD
EXT1
LDA
ISOO
,
JSR
OITCH
STA
,x
RTS
LDY
IS3000
•PSTRNG-PRINT AND SET ERRFLG IF KEYBOARD ENTRY
EXTLP
LDA
. Y +
PSTRNG
LDA
TRMSTA
TERMINAL STAT
JSR
FMS
BITA
fSOl
DATA?
BNE
OPTERR
BEQ
PSTO
NO
CMPY
PADDR
INC
ERRFLG
BLO
EXTLP
PSTO
JSR
PCRLF
LDA
ISOD
PDATA
LDA
,X+
GET CHAR
STA
,Y
CMPA
IS04
EOF?
CMPY
PADDR
BEQ
PST2
BLS
EXTLP
CMPA
ISOO
NOP?
LOA
14
CLOSE
BEQ
PDATA
STA
,X
JSR
OUTCH
PRINT
JSR
FMS
BRA
PDATA
BNE
OPTERR
PST2
RTS
EXT2
JMP
WARMS
•OPTION-TEST
OPTIONS
; U-RETRY ADDRESS
OPTERR
JSR
RPTERR
OPTION
LDX
tOPTMSG
OPTIONS
JSR
FMSCLS
JSR
PDATA
PRINT
LDX
ISLTERR+22
LDD
»S333l
SET LIMITS
JSR
PSTR
JSR
CHKIN
GET CHAR
JSR
GETCHR
ANDA
ISOF
CONV TO DEC
CMPA
1* Y
SUBA
IS01
SUBT 1
LBEQ
EXIT
ASLA
MULT BY 2
BRA
EXT2
6S Moo Joumri
April 'M
43
*HUL3X1-C0UNT:-CNTR X DVD
MUL3X1 LDU ICOUNT+3
LDX fDVDO
CLR TEMP
CLR TEMP + 1
JSR MUL1
JSR MUL1
STA COUNT
RTS
HUL1 LDA , -X
LDB CNTR
MUL
ADDD TEMP
STB , -U
STA TEMP+1
RTS
•MBDIV-MULTIBYTE DIVIDE DVD :- DVD/DVR
•DATA FORMAT - MSB AT LOWEST ADDR
•CARRY-1 FOR ERROR, -0 FOR VALID RESULT
•SET 'LENGTH' TO NUMBER OF DATA BYTES
•RMDPTR POINTS TO LSB OF REMAINDER.
MBDIV PSHS X,Y,U
LDA LENGTH
BNE DINIT
LBRA EREXIT
•LCOUNT :• 8 (LENGTH) +1
DINIT LDB IS08
MUL
ADDD IS0001
STD LCOUNT
•CLEAR ARRAYS i SET LSB POINTERS
LDA LENGTH
LDY IHIDE1
LDU IHIDE2
ZAIL CLR ,Y +
CLR ,U+
DECA
BNE ZAIL
STY RMDPTR
STU TMPPTR
•SET LSB POINTERS DVRPTR, DVDPTR
LDD IDVD
AODB LENGTH
ADCA 1500
STD DVDPTR
LDD IDVR
ADDB LENGTH
ADCA 1500
STD DVRPTR
•DIVISOR-0?
LDA LENGTH
LDX DVRPTR
CHKL1 LDB , -X
BNE DIV1
DECA
BNE CHKL1
LBRA EREXIT
•DIVIDE USING TRIAL SUBTRACTION
DIV1 ANDCC ISFE CLR C
DLOOP LDA LENGTH
LDX DVDPTR
SLLP1 LDB , -X
ROLB
STB , X
DECA
BNE SLLP1
•DECR BIT CNTR AND EXIT IF DONE
•NO CHANGE TO CARRY
L0X LCOUNT
LEAX -1,X
BEQ OKEXIT
STX LCOUNT
•SHIFT THE CARRY INTO THE LS BIT OF THE
•UPPER DIVIDEND
LDA LENGTH
LDX RMDPTR
SLLP2 LDB ,-X
ROLB
STB , X
DECA
BNE SLLP2
•SUBTRACT DVR FROM REMAINDER PLACING THE
•DIFFERENCE INTO TEMP STORAGE
LDA LENGTH
ANDCC ISFE CLR C
LDX DVRPTR
SUBLP LDB ,-Y
SBCB , -X
STB . -U
DECA
BNE SUBLP
TFR CC,A
COMA
TFR A,CC
•IF CARR* -0, SUBTRACT NOT SUCCESSFULL,
•NEXT BIT OF QUOTIENT IS 0.
•IF CARRY=1, SUBTRACTION SUCCESSFULL,
•NEXT BIT OF QUOTIENT IS 1,
•SET HDEPTR TO NEW REMAINDER.
LDY RMDPTR
LDU TMPPTR
BCC DLOOP
EXG Y,U
STY RMDPTR
STU TMPPTR
LBRA DLOOP
OKEXIT ANDCC ISFE CLR C
BRA DEXIT
EREXIT ORCC IS01 SET C
DEXIT PULS X,Y,U,PC
•RESTOR-RETURN TO TRACK
RESTOR LDA 1503 SLOW RESTORE
LDX ISOOOO 5 SEC TIMOUT
STA 6.Y CMD REG
RESLP JSR DELAY 28 USEC
LDB 8,Y STATUS
BITB 1501 BUSY?
BEQ RESOUT NOT BUSY
LEAX 1,X COUNT
BNE RESLP BUSY LP
RESERR LDX RESMSG TIMEOUT
JSR PSTRNG PRINT
JSR OPTION OPER OPS
RESOUT RTS
•RDDATA-READ ONE SECTOR OF DATA
RDDATA LDB TRK TRACK-0?
BEQ RDDATO SINGLE DEN
LDB DNSFLG
BEQ RDDATO
ORA IS02 DOUBLE DEN
RDDATO LDB T6FLG IF T6 USE E0X4
BEQ RDDATl
BRA RDDAT2
RDDATl STA 8,Y CMDREG
JSR DELAY
BRA RDD4
RDD3 LDA 11, Y DATA REG
STA ,X+ STORE DATA
ROD* LDB 8,Y STATUS
BITB 1502 DRQ?
BNE RDD3
BITB 1501 BUSY?
BNE RDD4
RTS
•RDDAT2-READ DATA USING E0X4 STATUS
RDDAT2 STA 8.Y CMDREG
April '8B
68 Wero Journal
JSR
DELAY
BRA
RDD40
RDD30
LDA
11. Y
DATA REG
STA
,X+
RDD40
LDB
4.Y
STATUS
BKI
RDD30
DRQ?
BEO
RDD40
LDB
8.Y
STATUS
RTS
•HRDATA-WRITE DATA TO SECTOR OF DISK
WRDATA
LDB
TRK
TRK-D?
BEO
HRDATO
SING DEN
LDB
DNSFLG
BEO
HRDATO
ORA
IS02
DOUBL DEN
HRDATO
LDB
T6FLG
IP T6.1 USE
BEO
HRDAT1
E0X8 STATUS
BRA
HRDAT2
•NRDAT1-WRITE DATA USING E0X9 STATUS
WRDAT1
STA
8.Y
CMDREG
JSR
DELAY
BRA
HDD4
NDD3
STA
11. Y
DATA REG
NDD4
LDA
.X*
NDD5
LDB
8.Y
STATUS
BITB
IS02
DRQ?
BNE
HDD3
BITB
IS01
BUSY?
BNE
MDDS
RTS
•WRDAT2-WRITE DATA USING E0X4 STATUS
WRDAT2
STA
8.Y
HRITE CHD
JSR
DELAY
BRA
HDD 40
NDD30
STA
11. Y
DATA REG
W0D40
LDA
.X*
W0D50
LOB
4. Y
STATUS
BMI
HDD 30
BEO
HDD 50
LDB
8, Y
RTS
•SEEK-
UPDATES TRACK.
SECTOR ( SIDE <
SEEK
STB
10. Y
SEC REG
JSR
DELAY
CKPA
9.Y
TRK REG
BEO
SKSEC
SKTRK
STA
11. Y
DATA REG
JSR
DELAY
LDA
tsia
SEEK TRK
STA
8.Y
CMD REG
JSR
DELAY
SKT1
LDA
8.Y
STATUS
BITA
IS01
BUSY?
BNE
SKT1
LOOP
SKSEC
LDA
DRVCMD
TST
9.Y
TRK
BEO
SKSD
TST
DNSPLG
DOUB DENS?
BNE
SKDD
SKSD
CKPB
• 50A
SEC GT 10?
BGT
SKSDl
SIDE 1
BRA
SKSDC
SKDO
CKPB
IS1Z
SEC GT 18?
BGT
SKSDl
SKSDC
ANDA
IS40
SIDE 0?
BEO
NOUP
NO UPDATE
LDA
DRVCMD
SET TO
ANDA
»$BP
BRA
SKCH
SKSDl
ANDA
IS40
SIDE 1?
BNE
HOUP
LDA
DRVCMD
SET TO 1
ORA
IS40
SKCH
STA
DRVCMD
STA
4. Y
CMD DRV
JSR
DELTS
.1 SEC DEL
NOUP
RTS
•SCRAMBLE-GENERATES
TRK FROM CNTR
SCRAMB
LDA
CNTR
GET TRK CNT
LSRA
MOV D2 TO DO
LSRA
ANDA
• SOI
STA
TRK
TEMP STORE
LDA
CNTR
LSLA
MOV DO TO D2
LSLA
ANDA
IS04
ORA
TRK
COMBINE
STA
TRK
TEKP STORE
LDA
CNTR
ANDA
ISFA
CLR D0,D2
ORA
TRK
REVERSE DO. D2
STA
TRK
IN TRK
RTS
•CONTIN-CONTINUE AFTER MANUAL ACTION
CONTIN
JSR
PSTRNG
PRINT
LDX
IDSKMSH
1+1 HIT RTN
JSR
PDATA
JSR
INCKNE
WAIT
LDB
8. Y
STATUS
JSR
DELHS
SPEEDUP
RTS
•ASCII
-EVALUATES IF
REG A IS ASCII,
ASCII
CMPA
• 520
LO ASCII
BLO
ASET
CKPA
• S7F
HI ASCII
BHI
ASET
BRA
AOUT
ASET
LDA
»' .
PERIOD
AOUT
RTS
•RDSEC.
-READ
TRACK 'TRK' SECTOR »SEC
256 BYTES
•'0 IF
OVER
256 BYTES, " VALID 256
128 BYTE SEC.
•'D IF
STATUS ERROR
RDSEC
LDX
tsoooo
DATA POINTER
LDA
TRK
SET TRACK
LDB
SEC
SET SECTOR
JSR
SEEK
STEP TO TRK
LDA
• S8C
READ SEC CMD
JSR
RDDATA
READ SEC
RDSEC 1
BITB
• SOS
CRC ERR?
BEO
RDSEC2
LDA
I'D
BRA
RDSEC9
PRINT
RDSEC2
BITB
tsio
REC NOT FND
BEO
RDSECS
LDA
«'S
BRA
RDSEC 9
RDSEC3
CMPX
tsoioo
256 BYTES?
BEO
RDSEC5
OK •
BLO
RDSEC4
LOH
LDA
• '0
OVER
BRA
RDSEC9
RDSEC4
CMPX
•S0080
128 BYTES?
BEO
RDSEC6
OK .
BLO
RDSC4A
UNDR
LDA
*'B
BTHN
BRA
RDSEC9
RDSC4A
LDA
»'U
UNDER
BRA
RDSEC9
RDSECS
LDA
• ' *
BRA
RDSEC9
RDSEC6
LDA
• ' .
RDSEC9
RTS
•RDTRK
-OUTPUT TRACK
t AND SECTOR STA
IF NO SET TO I'
*A' - 'U IF UNDER
VALID
UMcroJoumd
Aprt'tt
RDTRK
LDA
TRK
GET TRK 1
STA
TEMP 2
TEMP STORE
LDX
ITBMP2
ADDR
LDU
ITEMP
DEC ADDR
LDB
• $01
CONV 1 BYTE
JSR
BDCON
BIN TO DEC
LDA
TEMP
LDU
IT7TNO+6 MSG ADDR
JSR
HEXCON
UPDATE MSG
LDX
#T7TNO
MSG
JSR
PSTRNG
PRINT
LDB
• $01
FIRST SEC
STB
SEC
RDTR1
JSR
RDSEC
READ SECTOR
CKPA
I'S
REC NOT FND7
BEO
RDADD
FIND ERR TYPE
CMPA
• ' *
OK 7
BEQ
RDDUTO
CMPA
• ' .
OK 7
BEQ
RDOUT0
BRA
RDOUT
RDADD
CLR
TEMP
LOOP CNT
RDADD 1
I.DX
•$0000
LDA
ISC4
READ ADDR
JSR
RDDATA
RDADD2
BITB
• $10
REC NOT FOUND
BEQ
RDADD3
NO DATA
LDA
I'N
ON TRK
BRA
RDOUT
RDADD3
LDX
•$0002
SEC NO
LDA
,x
CMPA
SEC
BEQ
RDADD5
ID CRC
INC
TEMP
LDA
TEMP
READ ALL SEC7
CMPA
MAXSEC
BNE
RDADD1
LODP
RDADD4
LDA
»'S
NO SEC |
BRA
RDOUT
RDADD5
BITB
• $08
CRC ERR7
BNE
RDAD06
TRK ERR
LDA
I'C
BRA
RDDUT
RDA0D6
LDA
.X
TRK 1
CMPA
TRK
BEQ
RDADD7
DATA ADDR MARK
LDA
• 'T
TRK ERR
BRA
RDOUT
RDADD?
LDA
I'A
DATA AM
RDOUT
INC
ERRFLG
ERROR
RDOUTD
LDB
TRMSTA
KEYSTROKE?
BITB
• $01
BEO
RDOUT1
INC
ERRFLG
RDOUT1
JSR
OUTCH
PRINT
INC
SEC
LDA
TRK
TRX 07
BNE
RDOUT2
NO
LDB
FORMAT
DISK FFMT
ANDB
• $01
SET TO SD
LDX
IT7SBCT
GET MAX SEC
LDA
B,X
BRA
RDOUT3
RDOUT2
LDA
MAXSEC
RDOUT3
CMPA
SEC
LOOP?
LBHS
RDTR1
RTS
•STPRTE-STBPS IN TO
TRK0 FOR TIMB-20USEC(X)
«
AND
THEN CL8ARS CONTROLLER
STPRTE
LDX
STPSIZ
SET DELAY
LDA
IS0F
RESTORE CMD
STA
b,y
CMD REG
DBL20U
LBRN
DBL20U
DELAY
LBRN
DEL20U
NOP
LEAX
-1,X COUNT
BNE
DEL20U
LDA
l$D0
INTRPT
STA
8, Y
RTS
*OFFSET-FIND
THE OFFSET OF THE HEAD WITH
CAL DISK
*CENTERLINE.
RSLTN CONTAINS THE STEPSIZI
QUANTITY
•IN MILS OR
MINUTES.
OFFSET
LDA
• $00
INIT VARS
STA
SEC
STA
CNTR
OFFSET CNTR
STA
PCNT
+OFFSET
STA
NCNT
-OFFSET
OFFHI
INC
SEC
JSR
RDSEC
READ SEC
CMPA
• ' .
CORRECT?
BEO
OFFHI1
CMPA
• '*
CORRECT?
BNE
OFFLO
OFFHI1
LDA
CNTR
IF CORRECT
STA
PCNT
OFFLO
INC
SEC
JSR
RDSEC
READ SECTOR
CMPA
• ' .
CORRECT?
BEO
OFFLOl
CMPA
• **
CORRECT?
BNE
OFFEX
OFFLOl
LDA
CNTR
IF CORRECT
STA
NCNT
OFFEX
INC
CNTR
ALL SECTORS?
LDA
CNTR
CMPA
($08
BNE
OFFHI
LDB
NCNT
NCNT:— NCNT
NEGB
STB
NCNT
LDA
PCNT
READ ALL +OFFSETS?
CMPA
• $07
BNE
OFF1
ADDB
IS0C
PCNT:-NCNT+12
STB
PCNT
BRA
OFF2
OFF1
CMPB
l$F9
READ ALL -OFFSETS?
BNE
DFF2
SUBA
• S0C
NCNT;-PCNT-12
STA
NCNT
OFF2
LDB
PCNT
B:-ABS(PCNT-NCNT)
ADDB
NCNT
BMI
OFF3
NEG OFFSET?
LDA
#' +
BRA
OFF 4
OFF3
LDA
NEGB
• *-
OFF4
STB
TEMP 3
STA
T7MS12+1
STORE SIGN
LDA
RSLTN
COUNT :-B*RSLTN
MUL
STD
COUNT
SET LS DIGIT
LSR
COUNT
OF RESULT
ROR
COUNT+1
BCC
OFF5
LDA
• *5
BRA
OFF 6
OFF 5
LDA
• '0
OFF6
STA
T7MS12+5
LDX
•COUNT
SET MS 2 DIGITS
LDU
IDIGNO+1
OF RESULT
LDB
• $02
JSR
BDCON
ApriTM
68 Mero Journal
LOU
IT7MS12+2
LDA
DIGNO+1
CONV DIGIT
J5R
HEXCON
LDX
»T7MSli"
J5R
PDATA
PRINT
*
•
RT5
• MAIN PROGRAM •
START
J5R
NXTCH
DRIVE NOT
5TA
TEMP
LDX
(TITLE
J5R
PSTRNG
LDA
TEMP
DRIVE NO. 7
CMP A
ISOD
IN CMD LINE?
BED
PROMPT
NO DATA
CMP A
#S0A
BEQ
PROMPT
CMP A
i$30
VALID ENTRY
BLT
STRTO
CMPA
•S33
BGT
STRTO
BRA
DEFLT
STRTO
CMPA
r>
BEQ
STRTl
USGER
LDX
IUSCERR
J5R
PSTRNG
JMP
HARMS
STRT1
J5R
FILCHK
BRA
PROMPT
DEFLT
J5R
NXTCH
CMPA
IS20
BEQ
DEPLT
CMPA
• •>
BNE
DEF1
J5R
FILCHK
OEF1
LDY
DRVADDR
INIT SLDT
LDA
TEMP
5TA
DSKMSH
ANDA
• 50F
STA
DRVCMD
LDX
•STRT3
5?X
RETRY
*
LDA
ISOO
0-1M, 1-2MH2
*
STA
CLKFLG
CLR
ERRFLG
LBRA
Tl
PROMPT
LDX
ISLTMSG
I/O SLOT?
J5R
PSTRNG
PRINT
LDD
•$3730
SET HI/LD
J5R
CHKIN
GET CHAR
ANDA
• SOP
ASCII TO BIN
AS LA
ASLA
A5LA
ASLA
STA
DRVADD+1 SET CONT . ADDR
LDY
DRVADD
I/O ADDR
LDA
I5AA
TEST DATA
STA
11, Y
DATA REG
JSR
DELAY
LDA
11. X
CONTROLLER?
CMPA
• $AA
BEQ
PROMP 2
LDX
ISLTERR
JSR
PSTRNG
JSR
INCH
CMPA
• ' Y
BEQ
PROMPT
LBRA
EXIT
PROMP2
LDX
• DRVMSG
DRIVE NO?
STRT2
P ROMP 3
STRT3
NOHLT
NOHLT1
Tl
T1A
TIB
T1B1
T1B2
JSR
LDD
JSR
STA
ANDA
STA
LDX
JSR
LDD
JSR
ANDA
LSRA
STA
CLR
LDX
JSR
JSR
CMPA
BNE
INC
LDX
STX
BRA
LDX
STX
LDX
JSR
JSR
LDX
STX
TEST
LDX
JSR
LDA
STA
LDU
LDD
JSR
JSR
LDD
STD
LDD
JSR
JSR
LDX
JSR
LDU
LDA
STA
LDB
STB
LDA
STA
BRA
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
GET CHAR
STORE DRIVENO
PSTRNG
■$3330
CHKIN
DSKMSH
ISDF
DRVCMD
•CLKMSG CLOCK RATE?
PSTRNG PRINT
IS3231 LIMITS
CHKIN
ISOF
ASCII->BIN
A:-A-l
CLKFLG
ERRFLG CLEAR ERRORS
IHLTMSG HALT AFTER TST
PSTRNG
INCH
• ' Y
NOHLT
ERRFLG SET ERROR
IHLTMSG
OPT2+1
NOHLT 1
(ERRFLG
OPT2+1
tDSKMSl INSERT DISK
PSTRNG PRINT
INCHNE WAIT
•PROMP3 RETEST AODR
RETRY STORE
1 - DRIVE MOTOR STATUS (E0X8)
•T1MSG DRV MOT STATUS
PSTRNG PRINT
DRVCMD GET CMD
4,Y ORVREG
(T1AMSH READY DEL TIME
IS8027 TIME D7-LO
MEAS TIME
CLK COMPENS
LO-0SEC
TIMER
CLKCMP
150000
LIMT
ISF230
PASFAL
UPDMSG
HI-.62SEC
LIM OK?
UPDATE MSG
•T1AMSG GET MSG
TESTOK PRINT
IT1BMSH BUSY RESP TIME
IS01 INIT TIMER
CNTR STORE
IS18 INIT BRANCH
T1B2+1 STORE
RESTORE NO VER
CMDREG
3(J DELAY
2U DELAY
ISOO
8,Y
T1B3
To Be Continued Next Month
WWereJoumtl
April '89
47
By. All of us
'Condm ,%% • tyui Vlpfag ', DMW '86
MOTOROLA INC.
Microprocessor Products Group
6501 William Cannon Drive West
Austin, Texas 78715-8598
CONTACTS
Shcmaj DlVCT
runmnchamCommuwaOan, Inc.
(40^^62 0400
Ow Mosfcy
ecu
28 M
Microprocessor Pfndutit Group
(Slimi-M"
HCL AMERICA ANNOUNCES 6S030-BASED MINICOMPUTER
System Iteornoraics up to Su 68030 Processor* and 68HK2 Math Coprocessors
AUSTIN, Teaas, Feb 6, 1989— HCL America (Sunnyvale, Cahi). a subsidiary of Indus
Largest actrrpuier manufacturer, loday announced a mulupnxts^w muucrsnsjsvieT based, on
Motorola's 6SO30 (030) proensv and 68882 1882) imA crjpxocea**. TV system, called
M3000 series, uses up K> six 25 MHz 030s each coupled wish a 25 Mhx 882 and is targeted
ai office auicarwbon and on-line iranucoori processing.
HQ/s announcement r^s to a growing base of manufattiBeji offering 030 based
products including Apple Conjurer, Apollo. Hew Lett -Packud. NEC and Sony Mktmysknn
The 030 n ihe topW- the- line micruonmur in Motorola'i 68000 firmly that includes ihe
68000. 68008. 68010 and 68020- The 68000 family has invented (he largest software base
(S3 billion} and most ejiablished hardware base (S100 bsllton), The 030's enrnpaj ibOsty with
picceding membtn of the 68000 family protects manufacturers' o*iginal auftware imxumcnis
by allowinl for easy migration of software ftorn one 68000 dumxw*- to another.
"'IV030'ivert*n]iiy«ndpncc/porfarTTunceadrtnii|ema)teii a rialuial choke for a
wide range of markets. " said Murray A. Goldman, senior vice preside m and general manage*
of Motorola i Microprocessor Products Group (Austin, Texas). 'X)ur scon -to- be- a ntwunted
680^0 will be a revolutionary produci thai suppnna our large 68000 installed base "
HCL America is a wholly ownad jutMitary of HC1. Ltd., Indus largen computer
company andkading supplier of Uni* based maefwoes KO, AmcT%*. rfeadQuanxicd in
Sunnyvale, Calif, markets IJrua.ba^multtyrocusj* computer syslems and software, as
well as cuAoraiard %at rware services to OEM cuspmcjY
Moaoioti's 512 billion Semuamrfuctoi Products Sector [Phoeni* , Aha.), which
includes ihe Mkn^nu-etwc PioducaOffoup (Austin. Texas), ts a part of Motorola Inc his
the largest and broadest supplier of ctTRurocrurcsft in Noc^ Atttj*^. wiih a balanced
portfolio of over 50,000 device*.
SOFTWARE DEVELOPMENT SYSTEMS, INC
4246 BEUJE AIRE LAKE • DOWNERS GROVE. ILLINOIS 606 IS . USA
PHONE 1-312 971^I70« FAX: 14124714613
Contact: James E. Ouilienger
February 21, 1989
Mr Larry Williams
Exocutpns Editor
68 Micro Journal
Computer Punishing. Inc.
S^Ca*ar*fca Smith Road
Mooon, Tennessee 173*3
Dear Sir.
Thanfci for letting ui know about your journal and please canoe rac for not gotuag bock So
you. Since your magazine b ucdcaied to ihe orwerafe of Motorola rnkrcfanravMon, | would
expec) thai your readers will be interested in ihe ertloacd press release rogardtrrg our
CrwasCodc C produci, which bjvM now being mtmsurxxJ under the VAX VMS operating
sysirtrt- CrtXSCodcCb an optimizing CcmspiieT that rum on ihe VAX and generates
ROM*bleeodeforalJmcTT*ct»of MoUKOla'aC^QCO Eamiryofn
CroasCode C is uacd to develop a wide variety of fi£0uT>baaed applaaiiorw. including
autoototrvc control iIcvwq. aerospace and defense product*, amuaernrnt devices, cttrnriuu?
and cnrnmunkaiiorti equipment, oraumo produda. User scanning equipment, and medical
uulnimenla.
CroasCode C alfc/ws our cusaumar* to dcveact> code for these ibin using the VAX which
provide* a complete and friendly software OLVLkr^uou envinsnmcOL Here's taw iiworktc
VAX
VMS
Ikl "
taw)
hirdwue
The programme i&cs all the powerful and Umfltar tools on the VAX (it terminals, primer*,
file syslan. text editor, eic.) to produce C source code for a program that will evcniuilly iut>
on the 48000 based hardware- CroaaCode C iben on^ c* lib aowrr code iruo an object fib
which feprescnis the actus 1 irwruciian codes to he exccuieO by ihe 68000. Tno objeel file b
then convened tmo a formal that b suiiaNe rot tranvruMjtn down a data link lo ibe 68000
hardware, where ihe object code a omfled in a nutshell lhat's how OiKmor C b used.
h miTv tvy&at^ realty tprcvd about this ^mmcr Omducau*? Ye* there b- Crautbdc C b
flow one of the very few 66000 CcomrderafrUl prwviAa identical capabOisiea under ihieer
diSer^tor^atingryitcmerrvtrortnienta: VMS. UNIX, and MS-DOS. Not only thai, bui it
allows users lo move their source, object code, and object llhrvka lo different types of
m^iuKavtfhriii rwwuj to rocompile « rdink thenL That's because CroasCode Ci object
f ilea are inderendem of the machine on which they were g»icr»tcd-
Fnr ezampi e, a fronted* C user can take object file* or Ubrarie* that were generated en a
VAX. move them loa PC or a SUN and iheo use ihe PC or SUN as aorrcks^rocn) machine
Poupie who have nctwvrts con uuning macKines that *W*i two or rhrer different operating
systems (VMS, UNIX or MS-DOS) can share their object fOea across the entire network
wjthoul having lo worry about what type of machine they happen to be using at the moment
Any mac hineort the network, can he used aa a iScvelonrrwi i «**uon to generate code foe a
68000 based uppJicaiJon. Here's an eiatnpie.
48
ApriJ'89
68 Micro Journal
twining
VMS
Ibftfli/fg
MS .MS
UNIX
machine
I hope iha Iclfcc/ has giwn >tw enough mfcwnultoo lo decide wr»cthcT our release will bitcrol
your rcadc/a. K you have any tnJcstiona about OnwsVode C or ilk significance' to VMS lUcra,
ptease give men coll 141 I*312-*71.*I7K> onU III gladly g/ve you more informalion
I'veenrUiscd (wo Mack -and white phMta. Sul if )nu nrefri a rotor pJiotO lit send yo\> one
On* enckMod pliolo a to Undv^p* o«VM»ll. - and the o4h*r tt a portrait If you plan id prim
ihe proJ release, ptcauc civuioW that your rcadcra may want lo see a pkturr of ihc pnxluct
DianV you tor yo^r lime and »umt*Dn
Stnwd$
DjivJ F Zitlrr. Vrr F'rcftnlenl
ROMable 68000 C Compiler
Now Available Under VAX VMS
Eight months after uw/<*h**ng in CnWodc C aawyOer under MS-OOS and UNIX
!ollwc Dcvck»pfi«jii Syucmi. Inc. <SDSI) has announced thai the compiler a now hcing
mide tvailaMe under VAX VMS CrotvCod* C is in optima uig C anpOer chal generate*
ROMabk code fa all 6TO00 Family fnnr*CT\ indjtfcng the hitfwnd 68020 and «VlV)
nrDD"wa> ihe W88 1 and C««2 Doalingpofnl cravoLW<ara, and ihe 68*5 I MMU. Users may
wrile source code in any awnhmafian of C and aiiernhry language compile (he ccoe into
object file*, and then [ink the object files to form a complete Utad for *ny 6BO0C family
SDSl fognd (hat many «f the enmpanica using VMS (or emheddtxJ syaom development
were also using MS-DOS and UNIX hosed machaiea- Because of thtx. SDSl dnj^^
C*fK*Codc Clorun identically ind to share source and object files acrou all three operating
ryitenu. Tor example, the CroaaCodeC linker on the VAX can link object (Bra that were
genera icdhy ihe CnoaCode C compler under MS-D«S This feature tltow* users lo move
the)/ fOurttr code, objocl files and libraries from machine lo machine without making any
changes at all.
Craiat'odt- <- come* with a MmwnU^ornruEMe macro ivvrmMer. ■ linker, a librarian,
and a C Irhaiy ctinlaining the source to over 47 C function* Mao included tt a uncvenal
dptanJaaarr that enmmunkatea with EF*KOM prt3gr*/nmaw emulators and target hardware.
The ddwnloader convert* user*' miyded C code nut Motorola S-RccorJs ami a variety of
ouW «ndua**/y oa/vlard fDe formats. II also emit* avmKaie information lo provide symbolic
debugging capahQiuea on many popdar emulator*, including those made by Applied
Mjcmtyucfni. Atron. liunltville MkxtSYslema, Mkx<OS£_ Norlhmeal Instrument!. Orion
[reiriumruiv Softaitl Sophia, .iml /AX
CpduCooVC iw on all member* of the VAX famOy, including the MiaoVAX 2000,
McroVAX I], MkroVAX 3500/3600, VAX 730 and 380, VAX 6200. and VAX BOOT Scrie*
Piicea aurt at tt J95 on (he MkroVAX 2000
SOFTWARE DEVELOPMENT SYSTEMS. INC w*» formed in 1 9M (o provide CTOU
development ioWt to people who huikl ROMable annlsEa (ion*. Sbice Ukfl SOSI haa
prw*W orasm tnspilai and ctcjb •^onbrro w many hundmb of cortpanuB and their
araihanls. Software Oevelopntfn t Systems, tnc is dbdsaicd entirety to the design.
(Tumdkctune. and support of Cfm* dcvci»vjmQTl software
ULTRASCIENCE
The PC-68K1
PC Co-Processor
Prnmnat t twnputrni lli-rimw Computrr Sytlrnu
Why?
The standardized, widely accepted, and ubiquitous 1DM
Personal Computer represents an enormous, yet largely
untapped, resource or computing power. Unless con-
nected to a costly LAN and fileserver, the single-user "PC"
provides neither the level of interaction nor the con-
venient sharing of data so necessoiy in business, science,
or industry. However, the simple addition of a PC-6SKI
expands and enhances a PC into a real-time, multi-user,
multi-tasking, professional computer system, running
OS-9 and MS-DOS concurrently. A PC-68K1/OS-9
equipped PC can host a wide variety ofhigh performance
application software, previously reserved for much larger
and far more expansive machines, without snenftang
MS-DOS applications. The OS-9 operating system offers
extensive networking capability and a range of popular
languages, including C. BASIC, PASCAL, FORTRAN.
etc. Powerful C language VAX/UNIX extensions and a
special set of OS-9/UNIX library routines make convert-
ing UNIX applications tu the more efficient OS-9 a simple
and straightforward task.
How?
All that is required to get un-line is an operating PC, a
PC-68K1 and OS-9. The PC-68K1 allows the user to ftip
between active MS-DOS und OS-9 tasks, using the Per-
sonal Computer monitor, keyboard, and existing disk
drive*. MS-DOS files are available to OS-9 and vice versa.
TheMEMlOX
Memory/ IO
Expansion Board
Expand Your PC to 14 Ports and 2 Mega RAM
Why?
Anyone who has discovered the capability of real-time,
multi-user, multitasking OS-9 and the power of the
PC-66K1 co-processor knows that adding 10 more
efficient serial ports and another megabyte of wait
state RAM to a PC-66K1 will turn a "PC" into a
substantial computer system. Such a system can run
a business, control a plant, automate a laboraloiy, or
support an entire class, and the price is right!
How?
The MEMIOX board plugs onto the PC-66K1 and it is
ready to go. For standard installations, there are no
jumpers or switches to set The convenient R.J45 port
connectors are mounted right on the MEMIOX board
set, so there is no clumsy hardware to attach and
connecting peripherals could not be easier.
Ultrascience offers a complete line of shielded R.J45
modular cable and adapters to make cabling a snap.
FAX#l-3l2-2SMM7 PHONE 1 1312 2S6 0080 TB.EX I 910-997-0379
1624 WIlMEm AVE. ■ P.(X 80X556- WiUCTTE. I 60091
68 Micro Journal
April '89
49
s
FCC
'GOTO'
FCB
FDB
OOGOTO-CTABIZ
FCC
'IF*
FCB
FDB
DOIF-CIABLE
FCC
'NOTE*
FCB
FDB
OONOTE-CTABIE
FCC
'ON*
FCB
FDB
DOON-CTABLE
FCC
'PAUSE'
FCB
FDB
DOPAU5-CTABI£
FCC
'REM"
FCB
FDB
OOREM-CTABLE
FCC
'SHIFT'
FCB
FDB
DOSHFT-CTABLE
FCB
FCB
FDB
PARON
FCC
'THEN'
FCB
FDB
PARTHN
FCB
* MESSAGES FOR RESIDENT PART OF 'DO'
'FLEX comnartd error'
4
'BREAK entered'
4
'Batch file aborted'
• PARAMETER TABIE
e
s
PTABLE FCC
'CONTINUE
FCB
FDB
PARCON
FCC
'ELSE'
FCB
FDS
PAREI5
FCC
'ENDIF'
FCB
FDB
PARNDF
FCC
'ERROR'
FCB
FDB
PAREHR
FCC
'EXIST*
FCB
FDB
PARXT
FCC
•GOTO'
FCB
FDB
PARCIO
FCC
'IF*
FCB
FDB
PAR IF
FCC
'NOT'
FCB
FDB
PARN07
FCC
•OFF'
FCB
FDB
PAROFF
FCC
'ON'
CMJE3H
FCC
FCB
9REAKM
FCC
FCB
ABORTH
FCC
FCB
FILERH
FCC
FCB
PREFH
FCC
FCB
CHDPEH
FCC
FCB
CONTNM
FCC
FCB
NOLABM
FCC
FCB
INIFH
FCC
FCB
NOIFH
FCC
FCB
KEN DM
FCC
FCB
w o
^ O
< _l
a r
1 *
M «
GO ©
9 «
63
9
'Illegal file type'
4
'Illegal parameter reference In batch file'
'Batch file conma/id error'
'Preaa any key to continue ... '
'Label not found'
'ELSE or ENDIF not found'
'ELSE or ENDIF without IF'
s
n »
9" 3
3 ?
o
n
n
(/>
(/>
o
'MEMEND changed by batch file; DO rranory not released'
RES ID
JSR
PCRIF
RESID1
LEAX
HEADCH.PCR
ROUTINE
STX
INCK+1
LBSR
TSTABT
LBSR
READLN
LDA
LINBUF
CHPA
»CR
BEQ
RESIDl
BSR
TSTCMD
BNE
RESIDl
JSR
OOOWD
STB
I.STERR.PCR
TST
ERRFLG.PCR
BEQ
RESIDl
SETUP INPUT VECTOR TO 'DO' CHAR INPUT
TEST FOR ABORT FROM THE USER
READ NEXT LINE FROM COMMAND FILE
IGNORE EMPTY LINES
TEST FOR A 'DO' INTERNAL COMMAND
IF NOT, CALL DOS
SAVE LAST DOS ERROR
ONLY CHECK ERROR IF ERRFLG SET
s
FN0IB1
LBNE
OS KERR
LBSR
READLN
IDA
LIMBUF
CHPA
• 'g
BNE
FNDIB1
JSR
NXTCH
LOX
LABPTR,
PCR
LBSR
COMPAR
BEO
FNDL81
IDA
SAV9CH
PCR
STA
ECHOPL,
PCR
OR
GOTOFL
PCR
RTS
* process *if' ocmwo
DOIF
CLR
NOTFLG,PCR
LBSR
CHKPAR
CMPB
•PARNOT
BHE
DOIF1
COM
NOTFLG,PCR
LBSR
CHKPAR
DOIF1
CMPB
• PARXST
BNE
DO IF?
IDX
toewn
L£AX
-F_LEN, X
JSR
GETFIL
BCS
OOERR
LOA
•MOPNR
STA
F_FUNC, X
JSR
FMS
BEQ
DOIF1A
IDA
F_ERR, X
CHPA
•E_FNF
BBQ
OOFLSE
doerr
*
LBRA
DSXERR
0OIF1A
IDA
IM_CLOS
STA
F_PUNC, X
JSR
FMS
BNE
DOERR
*
LBRA
DOTRUE
DOIF2
CHPB
•PARERK
BNE
DOIF 3
TST
LSTERR,PCR
LBNE
OOTRUE
BRA
DOFLSE
DOIF3
LDY
LINPTR
PSHS
y
DOIF4
JSR
NJflCH
ERROR
READ LINE FROM COMMAND FU£
IF NO LABEL THEN CONTINUE (UNTIL EOF)
ELSE MOVE LINE POINTER TO START OF LABEL
COMPARE LABELS
CONTINUE IF NO MATCH
RESTORE ECHO FLAG
CLEAR GOTO FLAG
EISE RETURN
CLEAR 'NOT' PARAMETER FLAG
CHECK PA/WE TER
IF 'NOT'
THEN SET 'NT' PARAMETER FLAG
AND GET KEXI PARAMETER
IF 'EXIST'
SETUP TEHPORARY FCB
REPORT DOS ERROR, INVALID FII£NAME
TRY TO OPEN FII£ FOR READ
IF ERROR m FILE NOT FOUND THEN FALSE
ELSE DISK ERROR
IF NO ERROR, CLOSE FII£ AND GOTO TRUE
ELSE IF 'ERROR'
THEN IF LAST ERROR FLAG <>
THEN TRUE
ELSE FALSE
ELSE LOOK FOR '-'
WA
•CR
LBEQ
CWPER
CHPA
• *-
BNE
D0IF4
LDY
LINPTR
LOA
•SPACE
STA
,-Y
LEAY
1,1
LOA
0,Y
CHPA
•SPACE
BHI
DOIF5
JSR
NXTCH
DOIF5
PUIS
X
LDY
LINPTR
LBSR
COMPAR
BNE
DOTRUE
STY
LINPTR
D0IF6
JSR
NXTCH
CMPA
> SPACE
BHI
DOIF6
DOFLSE
TST
NOTFLG.PCR
BNE
DOTRUl
DOFLS1
LBSR
CHKPAR
CHPB
•PARTHN
BBQ
DOFLS2
CMPB
IPARGTO
LBNE
CMDPER
RTS
DOFLS2
IDA
eCfiOFL,PCR
STA
SAVBCH,PCR
CLR
8CB0FL.PCR
INC
OOTOFL.PCR
CLR
IFLEVX,PCR
DOFLS3
LBSR
READLN
LBSR
CHKPAR
CHPB
fPARIF
BNE
0OFLS4
INC
IFLEVX.PCR
BRA
D0FLS3
DOFIS4
CHPB
•PARNDF
BNE
DOFLSS
DEC
IFI£VX,PCR
BPL
DOFLS3
BRA
D0FIS6
DOFI.SS
TST
IFLEVX.PCR
BNE
DOFIS3
CMPB
•PARELS
BNE
DOFLS3
INC
IFLEVL.PCR
IF CR FOUND, HAVE PARAMETER ERROR
CHANGS *-' TO SPACE
IF NEXT CHAR - DELIMITER
THEN GET NEXT CHAR
RESTORE POINTER TO FIRST STRING
SAVE LINPTR
COMPARE STRINGS
RESTORE LINPTR
H3VE PAST SBCOND STRING TO CHAR <- SPACE
FALSE; TEST 'NOT' FLAG
DEFINITELY FAI.SE; CHECK PARAMETER
IF NOT 'THEN' OR 'GOTO' HAVE ERROR
IF 'THEN' SAVE CURRENT ECHO FLAG
DISABI£ ECHO
SET GOTO FLAG TO DISABI£ PARAKS
CLEAR BYPASS 'IF' I£VEL
READ NEXT COMMAND LINE
IF 'IF'
THEN INCREMENT BYPASS 'IF' LEVEL
CONTINUE
IF 'ENDIF'
THEN DECREMENT BYPASS 'IF' I£VEL
EXIT LOOP IF <
IF BYPASS 'IF' I£VBL >
THEN CONTINUE LOOP
IF 'ELSE'
THEN INCREMENT 'IF' NESTING LEVEL
TSTB
BEQ RESID1
LEAX ERRLAB,PCR
IBSR FNDLAB
BRA RESID1
IF DOS ERROR
THEN GOTO LABEL IN 6RR1AB
* INTERNAL COMMAND PROCESSING ROUTINES
* TEST FOR INTERNAL 'DO' COMMAND, AND PROCESS IT
* RETURN Z = FOR INTERNAL COMMAND , Z - 1 OTHERWISE
8
S
2
§
TSTCK)
IDA
fLINPTR]
CMPA
t' <
BEQ
TSTCKL
CMPA
*'8
BNE
TSTCM2
TSTCM1
LBSR
DOR EM
BRA
TSTCM3
TSTCM2
LBSR
CHKCMD
BEQ
TSTCM4
JSR
D,X
TSTOO
1DB
»1
ROUTINE
TSTChH
RTS
r
n
o
2.
• PROCESS 'ECHO' COMMAND
ft
DOECHO LBSR CHKPAR
CHPB IPARON
BNE DOECH1
IDA i$FF
STA ECHOFL, PCR
RTS
*
DOECH1 CMPB IPAROFF
I BNE CMDPER
CLR ECHOFL, PCR
RTS
• PROCESS ELSE COWBND
DOELSE
TST
IFLEVL, PCR
X
BEQ
NIFERR
s
o
LDA
ECHOFL, PCR
STA
CLR
SAVECH, PCR
ECHOFL, PCR
GET FIRST CHAR OF NEW COMMAND
IF COMMENT CHAR THEN PROCESS COMMENT
IF LABEL CHAR THEN PROCESS AS A COMMENT
ELSE CHECK FOR AN INTERNAL 'DO' COM«ND
IF IT IS, CALL ROUTINE TO PROCESS IT
CLEAR ZERO FLAG TO INDICATE INTERNAL
CHECK PARA»«TER
IF 'ON'
THEN SET ECHO FLAG ON
ELSE IF NOT 'OFF'
THEN HAVE ERROR
ELSE SET ECHO FIAG OFF
IF 'IF' NESTING LEVEL •
THEN HAVE ERROR
ELSE SAVE CURRENT ECHO FLAG
INC
GOTOFL,PCR
CLR
IFLEVX, PCR
ooei-Sl
LBSR
READLN
IBSR
CHKPAR
CMPB
IPARIF
BNE
DOELS2
INC
IFLEVX, PCR
DOEI.S2
CMPB
IPARNDF
BNE
DOE LSI
DEC
IFLEVX, PCR
SPL
D0ELS1
CLR
GOTOFL,PCR
IDA
SAVBCH, PCR
STA
ECHOFL, PCR
D0ELS3
DEC
RTS
IFLEVL, PCR
PROCESS ENDIF COMMAND
DOENDF
TST
IFLEVL, PCR
BNE
DOELS3
NIFERR
LEAX
NOIFM, PCR
LHRA
P ERROR
PROCESS 'EXIT' COMMAND
DOEXIT LBRA EXIT
PROCESS 'GOTO' COMMAND
DISABLE ECHO
DOGOTO
L£AX
LABEL, PCR
IBB
*e
DOGOTD
JSR
NXTCH
STA
,X+
CMPA
ISP ACE
BLS
DOGOT1
DECB
BNE
DOGOTD
CLR
,x
DOGOT1
1£AX
LABEL, PCR
FNDIAB
STX
LABPTR, PCR
LDA
ECHOFL, PCR
STA
SAVECH, PCR
CLR
ECHOFL, PCR
INC
GOTOFL, PCR
LEAX
DOTCB.PCR
IDA
IMRWHD
STA
F FUNC.X
JSR
FMS
SET GOTO FIAG TO DISABLE PARAMS
CLEAR BYPASS 'IF' IEVEL
READ NF.XT COt*IAND LINE
IF 'IF'
THEN INCREMENT BYPASS 'IF' LEVEL
CONTINUE UNTIL 'ENDIF'
DECREMENT BYPASS 'IF' LEVEL
CONTINUE IF >-
CLEAR GOTO FLAG
RESTORE ECHO STATUS
DECREMENT 'IF' NESTING LEVEL
IF 'IF' NESTING LEVEL <>
THEN DECREMENT 'IF' NESTING IEVEL
ELSE REPORT MISSING 'IF' MESSAGE
MOVE LABEL TO LABEL BUFFER
SAVE IABEL POINTER
SAVE CURRENT ECHO FLAG
TURN ECHO OFF
SET GOTO FLAG
REWIND TO START OF COMMAND
FII£
CONTACTS
Sob Anundson
B8open Consortium. Ltd.
<S03>6&2-57*)3
cWOPEN CONSORTIUM PROMOTES OPEN STANDARDS
FOR MOTOROLA 8W0O RISC MICROPROCESSOR;
DEMONSTRATES "NEW WAV OF DOING BUSINESS"
Ihe 88opcn Consortium ii a groupof leading tariwoiT uid software vendor*, formally
chartered to Apnl 1988 to establish and («w»it ihe industry- *ide adoption of open
cuManb tor pioducts using the Mmorola 8 WOO RISC (Reduced tnstnaziart Sei
Computing) microprocessor arcraaxturc The rncrnhcxs of SSopen are leading the way id a
new way of doing business in Die computer iMuicy — ocmonsrjanng thai vendors who
c ompe t e vn"orous|y against ooe anmhr. in ihe marketplace can benefit from dedicating
reaaurccs to a coopuaove effon id achieve mutuaj success.
Early Success: The 8*000 Binary Compatibility Standard
Only three months after bdng formaDy chartered, the Contoroum published the Trial Uir
Stanaord dorun^nt for the 88000 Binary Compatibility Standard (BCS) Vk first BCS
puWiihed for any RISC rnjcroproExasr. this standard wtll allow software written id its
specifications id run on any BCS-omipUani 88000-bascd system
Ihe 88000 BCS is evmpatibJt with si>ch widely rsaocpted industry standards as POSIX.
XJOpen • and ihe AT&T UNIX System tntetfaee Definition. It supports 90 percent of ihe
spctifkarioAS developed for the propmed Mouaola 68000 BCS. simplifying ihe portability
of applications from one ucht<Ecruic to the other. In addition* the 88000 BCS u
UTipknxnicd ai the iystctn call tcweLuid is therefore applicable to any varum of ihe UNIX
operating syjtcm or to a non-UNIX opera dng system.
The 88open Mission
The raiswai of tbe88open Consortium reflects in* .ocottkmi belief of us membership thai
the Motorola B8000 tiucmpraEesaor RISC architecture offers a superior platform Tor the
ocveioprneni of cnrnpuier tystents and software. The timely nnplemertiaaori of wandards
for hardware and software interfaces to the 88000. prior to ihe development of a substantial
body of systems and software, wilt achieve clear benefit;! for both vendors and users of
88000- based products.
The existence of standards will rtrinee the complcjury and cosi of developing opcrtiing
systems, compilers, applications software, and peripheral hardwire, Moracrver, having
invcued once in designing for a standard environment, vendors can then invest mote of
their devcloptncrii rcsourco in improving and differentiating their pioduci*. The elaborate
parang activities typically needed to move software from one vendor's system to mother's
will be virtually eliminated. The resulting cost savings will benefit vendors and users alike.
B8opcn welcomes participation in its standanis setting activities from all interested parties,
including ihe academic and user communities. All standards developed by (lie Consortium
will be shared openly and equally. 8*open members will autornatkally receive copfes of
iiAodard* related documents, and non-members may receive them for a nominal fee.
Thenxmbasof the Cartwrtivm believe product development based on standard* wtll
accelerate market acceptance of the 88000 through carker availability of a broader selection
ofinoov&ovt systems and software at rca&MAbk pnecs Customers a* well as vendors
will be more willing id invest in produces based on open standards if they arc confident of
not being penalized for early aartrretmeni to a young technology
The 88open Charter
The Iftoprft Gsfliofli urn charter aims to bting about the market siioctis of the 88000 RISC
archjfcxaure through a variety of programs, beginning wiih educational and marketing
activities ioprw™« the 88000 product family as the noa complete and viable RISC
processor platform available to the market
As a pan of tit mission to develop open standards and encmirege their use, the Qnsortium
wdlpamcipateuisiandarD^Kiting activities woriflwiifc, whenn^approonaic The
Cunsoroum also will speak as a coUectivc voice to influence future development of the
88000 product fami ly
Ihe Conowoum may negotiate wiih hardware and software vendors to produce 8 8000-
rebued products for ihe benefit of &8open members In addiboa. ntonbasmay coocer»ie
» develop pmdicts that meet mutual needs, through coUabnraut*) berween rnernbm or
through march and development sponsored by the Consortium. It is expected that
Consortium members will benefit from more favorable acerat to such products.
The 88000 BCS is a subset of the proposed AT AT application biliary utierfaac ( Afil). a
n^inr cnrnplete interface standard that will even uilly specify extension ftaniroiucb as
ihamd librtiysupoor.netwcirlt interlace and the "look and feel" of the windowing systrrn.
ATAT has indicated informally Us intention to use the 88000 BCS as the basis for an
88000 A8I.
Ihe 88opcn Consortium will work wiih ATAT to complete the B8000 ABL and will
continue to develop certification vols to verify thai application programs conform to the
BCS standard.
The 88000 BCS exemplifies ihe manner in which smicpc cooperation among enlightened
compan ies can yield substantive benefits, not only to the direct participants, but also to
vendors and customers iluoughcui the industry There is no dotibt that ihe establisfcrrmi
of this standard so near the incoducuoo of the 88000 architecture will radUlate lis tnpid
acceptance and muovaie a vonciy of developers, to exploit its powerful capabilities.
Organization
1 he OMKoruurn ts ayjaao^ ast not -for-profit me m b er onjanuai>on It is governed by a
Board of Directors representing member ce>mpan>cs. w uh three directors from hardware
vendors, two from software vrrvtivs, one from the academic awamiioicy, one from ibe
roonbtfsrup at large, and one frotn Motorola.
Day-to-cUy operations am run by a full time executive director, who also serves on the
Board of Directors, Bob Anundson, formerly of Tektronix. Inc.. is executive director He
is assisted by a small staff.
The work of toe Consortium is carried do through member volunteer c**nroanccs_ Die
Technical Committee is charged with proposing and developi ng definitions, standards and
extensions relating to the use of the 88000 architecture and tat use in hardware and
software; this commiow pioduced the B8D00 BCS.
Ihe Business Committee deals with business issues relabng to the Cceoontum. and has
broad ■caponsibiliry for the promotion of the 88000 product family in the ma/kCTptaoc. The
Wot Id Strategies Committee will focus on i he extension of the CctisssrtiunTs activities and
irifl ik nee worldwide. 88open Consortium offices and siarTarc pla/iiicd f« Europe and the
Pacific Rim
Corpora te numbers have full voting r ghls, and thus participate in setting ihe goals and
ecserreining ihe activities of the Coniortium. Non 'vocbg meoihenhjps ore otTeredto
indivxtuals and non-profii orsjsnizations who are inmrsted at the goal j of the CtmsorouiiL
for mere information, contact BBopcn Consoroum. Ltd.. 8560 SW Salish Lane. Suite 500,
Wilsonvilte, Oregon 97070; telephone (503) 68Z-5703.
68 M cro Journal
April 89
53
Juttae nmrwwy-Ampiiib
Iw|um* Prwmawa, lac
U0frt1»4M
FOR OAMEDIATE R£LCA5£:
Bob Aa&odrnj
(xajsawros
I -Data General
riu^bu
Language Processor*., lac. Announce* Compiler
Product* far Metorele 83000 RISC Architecture
C— »jH— Tea* Fore* L>ft**a Scrt»*r* t>n'ilnji— t
, Fpbmarr II, I WW - Laiunue* Pnxeewm. lar |UPfJ today
Upon Receipt
Andrew Hettinger
(408) 898-4060
Hfttut product* for Mm Motorola MQOO RISC aftbiuwlu.'* u4 tfeal it feat )«intd lb* gftopm
CoaaortLaei Lid Sohwar* UlUaUV* Proff eat Tb* ta r n w ia ^ i n agi *«* mad* *i a am
«0or*fftn bald by avopas *ad attepdvd by bom that) Ift ia^pwdni aoflwani vaadent
eonmEti«J La tb< mm rlaodard, LPI bu baan « matabar of lb* iftepan CaeanAium dac« June
L08* Slsce Jttlrtl* 19W.Swv« W Wrloia/i. Sank* VW Pmidnt o* Ratetrtb wd
0«««k>p(B€Bt At LPI. baa bald a poslUoe. da tb* Wop*» Bovd of Director*.
Uacuift Prmmmt*. let- » pot tJM iu> Faaut* of Coaa4l*r* to Lb* HOW FLE5C *KbJt*rtur*.
Tha LPI Faally of Co»ptlere lactase* BASIC. C, COBOL, FORTRAN, PjacaL, PL/], and
RFC D pro*/ aa mi a* limpiNpa Amo iwledad » CadaWateb. u laiarertw, w(«-li«l
dtbuffff , Tb*a» ptodtKu as* np*cud to b« retaaead u> tha anad «vert*r 9/ (BCT.
Tba Softsar* (aftiaitv* ww forovd la Au|WI IflSf te pOKftOt* lb* dW*kfpm*Bt of aoftau* f«*
^>* **«» Klx' arcbmaamal Re" mpM ;?"-*< Ml ftfaVAj ;*.v aliMnM rm |M Bttt MHb1
10 • portiaa lab, HOOD *>**b>pB**t fcardman. wad ra*ra*tiai and UtbAkral tappatt frofe lb*
bespat CoavTUsn. Depot SoAwas* laUUtl** aponaw* jotted* t>*U Gra«*ai. Dotpbtp
Cm^w. a wbaUisry of Nefab D«U. UofafMt, NCR. Opaa SrvWen and Saoyo/koo.
laLM-malioaai
*W# hav* aaaa •'•riin| ajf Mill) *ith ia4*o*f>d*fii aoftwan hbiWi ta niuN th»l
asalica-Uwi «UI b* iataudiaidy a*atlabM f*r MOOO-baaae ayatsa*.* Mid Bab A*ynd*oa,
Eiacalin Dirariot of ib* M a f ia Goaanrtiua *Tb* >u<rraa* add moBMLun of lb* pracrast m
du*tu> fmiavas to tb* ftoviaj aoaaatu* far tb* MoLoreU MOOC arcbitactvn-*
LPl'i cacaptlan a*d mfttiM tool* in bales d —tlopad 10 ba aompliaat wlcb Oopa'a Blsur
Comp*UoUi(y fiUoda^d (&C81- Tb* BGfi bat baaa tdopcad at put of ttc ATftT AppttcaUaa
Riuir Icttrfact (AB41. tt b capwiad tbai BC8 aompllaat toftwait artll i&u«aav rrrtcuu for
tefivara dwttoptrt aod prevldt tad umu witb ifavlnh-wrapptd aoftwan toIutioAt for aU 8800O.
•LPI «UI ba tbfl Ant laA4ua(« vondofa 14 taaka arailablo an cotirv Utaiif of iatc(FBl«l toKw*
dmlapaMBi lAolt \at lb* bMorolt MOOO RISC tDtuMiMt. 1 tutat Roy A, Fbutay, PraaidaBi
of LPL "Tbtaa iaoit will flv* tbt and uatr taa ability to artabiadk fovras toftwart appJicaUoat
ob lb* nOQO aKbiiKtar* 4 ■> •*!( aa 4*ntap aaw oaaa Tbia abowa LPI< coairailDwat to Mopaa
aad o«r btab wpwlttwat of iba b a aitaai oppottaaiUat ttao<V t1 «d *ifc» MiwnU't WOW RiSC
Lit, a j n im m af aaalHr toftwata drr t lopa n at toobv off*** a ML nil* of JJ-btt |
Uaniaaa*. 1^1^*4 BASIC, C. COBOL. FORTRAN, PASCAL. PL/L Ri*G 0, and u
bjtBBfilr** a*aw*.W*at dihuajar. GoaaWaKb Tbaat aoflvar* pradtttta an praamlly aff*n4 an
ladaattr-Maadard tytvma aacb at Mataaala a MUtO, WE130M. wd tntalt MOM maaiac
UNO*. X£NDC*, aad MS-D09* apatatia, trtitaa
H^daaartand I* PrtaabgHtra. Maatacauaatta, LPI it a na/kat Uadar io qoably |4ojuaa>
ronpiW* a»d toftaaM daYalopnaant Uwla. Siaet iU tauptLai is 1M0, LPl'tiMbteU^cd
aa*aalat* bat auraclad m^ot tuHowm* i»c|gdinf «nnpui*r uuiufw^^f*, Fartun* VOO
FompaDtaa, tb* fadaral jd T iM a H, kpplkattoa aoflwif* davalopara, ud a k»i hat of dcMnaatw
atd uiiaroaiacxLal aoftvara diHrtbwl«wv
DATA GKNSAAL UNVCXLS riRST 1NDVSTRY STANDARD
FAMILY OP RISC-BASED SYSTEMS
SAN FHAHC1SCO, Pab. 28, 19A9 -- Data General today
unvallad tha flrat ajaaab*ra of ita n«i* faailiy of products
baaad on tho Motorola 88000 architecture. The ennounceaenta
include; a really of hlgh-perforaence, VKE-bssed syatMfl that
function aa aervers or auiti-utar ayateaia for comarclei and
technical appi lcationa; a new faally of desktop pereonet
worketatlona; and 00/uX 4.1. tha lnduetry's only version or
UNIX aupportlng e full RISC-beeed faally of eyeteaa.
The BBOOO-baaad faally eetabllahee lnduetry-leedlng
prlce/perfoxeanca atandarda for RISC-based syeteae. The
eyeteaa perform at 20 or 40 MIPS or greater end tho
worketatlona perform at 17 or 20 MIPS or greater, beeed on
Dhryetone aeaaureaente.
'Today'a announceaent aetebllehae Date General aa the
Induetry'e leader in coet-ef fectlve. dletrlbuted ooaputlng
■yitflan. Data General *e eaperlence In building large,
wall-balanced, high-throughput ayateaia glvea our eaerglng
faally of 88000- baead product* a aejor advantage over elaller
aachinee from workstation and PC vendors. Thie experience
hee enebled Deta C«cw»rel to deeign aiachlnea apeclflcally for
the newly emerging atylaa of computing euch as the
Cllent/aarver model.' eeld Herb Oeher. division director of
product marketing.
"Todey we ere Introducing the flrat an abara of a
binary-compatible feally of products thet ere feeter, lata
coat lv end more flexible than any other eyeteaa on the
market. for the price of todey'e pereonel coaputere, the
BBOOO-beeed worketetlon dellvare tha performance of a
aid-range workstation. TTtm 8 8000 -baaed eyeten la not a
heedleee worketetlon or e repeckeged alnlooaputer , it le
designed with eophietlceted 1/0 and large cepeclty etorege to
eupport a large number of ASCII terminate, networked X-Wlndow
grephlce tarmlnela end worketetlone. "
The powerful, mldrenge BBOOO-baaad eyetem le available
with one or two proceeeore. By ewepplng the CPU board the
user cen upgrede fraei s elngle to s duel procaaeor, neerly
doubling CPU performance. The ayetem le evallable In
deekelde end 14-lnch-hlgh. MEMA-Standard reckmount verelona.
Both ayetaaa Include e ten-alot. induatry-etandard
VMB-compatlble chssele, up to 208 MB of error-correcting code)
■aeorv end cartridge end reel-to-reel tepe options. Tha
deskside verelon Includee up to 2 glgebytee of ■•■■ etorege
end the reckmount verelon contelna up to 16 glgebytee of meee
etorege through duel-ported B-lnch SMD dieka.
induatry-etandard wide and local aree ccaaain lcetlona ere
provided by eyncKronoua contrnllera (VSC/A) end tha vme bue
Ethernet controller [VIC). Up to 512 RS-232 esynchronove
ccavxectlona are handled by terminal eervicee hoet edepter
boerde (VTJA/128) which connect up to 128 eaynchxtmoua devices
vie clueter controller boxes.
The worketetlone can support from 4 to 28 MB ef memory
In a 2-1/Z-lnch-hlgh pedeetel encioeure. The worketetlone
use e elngle multilayer board containing a Motorola 88100 CPU
end FPU, two Motorola 88200 CMMUe (Cache and Memory
Management Unite), and monochrome or color grephlce hardware
co-proceeaors. Interfaces for e PC/AT keyboerd. e
three-button optlcel eouee, e SCSI port, a parallel port, a
aerlel port and 802.3 Ethernet are atandard.
54
April '89
66 Micro Journal
The •ooochrowo workatationo uit tho NSC UP072120
Advanced Graphic* (Hep ley Controller. Tho eight-plane color
unit, based on a custom graphics coprocaaaor can display 256
alnulteneoue colore fro* a peiette of 16.7 allllon colore.
The 20-inch monochrome end 19-lnch color flicker-free
■ooltora operete et K)Kz end deliver 1280*1024 pine!
raeolutlon.
SCSI peripheral enpenelon for tho dlakleaa workatatlone
la via compact deekeop housings. Up to three of theae
housings can be aonnacted to a workstation. Porlpherel
options lncludo e 160-H8 or 322-HD S-l/4-lnch full-height
UincAester disks, a 15D-MB quarter-Inch cartridge (QIC) tspn
drive end 5-1/4-inch or 3.5-lnch floppy drive.
UG/UX 4.1 la an enhanced version of Data General's
coraerclsl-grsds dc/UX 4.0 UNIX operetlng eyetea end le
dealgned to take full edventege of the Kotorols BB000 RISC
architecture. DO/UK 4.1 lncorporetea the major featuraa
found In UNIX ayeteaa with today'a doainent UNIX atanderde.
"DC/ux 4.1. Date Generel'e UNIX operating ayetea with
advenced symmetric ami tlprocssslng, eneblee tho BflOOO-bssod
system to deliver cost-effective computing end Modular growth
while protecting Investments tn eppllcetlon software end
peripherals, " ssld Oehor. "OG/UX 4.1 conforms to the BBopen
Binary Compatibility Standard allowing cuetontere to run all
BCS-coajpliant aoftwere developed on 08000 -based systems from
any vendor. Application develop* re can uae Data General's
oq/ux 4.1 on ell these aysteae to produce ehrlnk-wreppad
software for the entire BB000 aarketplece. "
JMICR&NICS
^^""^ RESEARCH CORP.
Microcomputer! • Hard* arc and Software
CtMIX* Sale*. ServKcandSuppon
11 Feb 1989
Dear Don,
Just two typos to report in the February 'logically
Speaking' - both mine.
Page 19, 6th line up from bottom - should read
"making*
Page 22, para 6, line 3, should read "internal-01
doesn't consistently line up . ..", JOT "intemal-23"
Now that I've got just over 2 years of programing in
68000 Assembler under my belt, I can see what a
tetrible price we have to pay by writing in position-
independent code. I feel that programs such aa my
KBASIC would execute at last 2 to 3 tiroes as fast if
there were only a special version of SK*D0S dedicated
to the single end-user (no multi-tasking or multi-user
stuff in the works) , eosething like the old 6809 FLEX.
With RAHDISK at the top of cBnory, and a fixed Load-
Address for applications programs, we could really
blast along]
Itie Load-Address could be set high enough (say $10000)
to allow for future improvements to SK*nos. Ah, if
only this could be so . . . I'd gladly take tbe time to
re-write RBASIC for such a set-up, and still keep up
with the present version to run under a future multi-
whatsit SK*CQSU Bow about it, Pete? (Stark, that is)
Maybe readers who program in 68000 Assembler would be
interested in learning of the many snags which lie in
wait for the unwary, and some of tbe procedures I've
evolved to make a programmer's life a little easier!
I«t me know! 1
Don Willisas,
68 Micro Journal,
5900 Cassandra asith Road,
aixson, W 37343
Sincerely,
u
R. Jones
President
DG/UX 4.1 la e full PQS I X implementation, compatible
with Syate* V Interface Definition laaua 2 <SVID2) and
Berkeley Software Dletrlbution (BSD) 4.2. DG/UX offere the
beneflte of eny etandard UNIX ayatea while providing unique,
application- transparent capabilities auch aa fully symmetric
multiprocessing eupcort; e robuat. flexible file eyetea.' an
enhanced scheduler end extended error reporting. it also
supports TCP/IP comnunlcetlona so f Were, NFS 4.0 end
X-Wlndowe Verelon 11 Releeaa 3.
DG/UX 4.1 fully implements the BSopan Binary
Coepatiblllty Standerd. "*» a founding member of BBopen Date
General haa actively participated In the BSopan Software
Initiative program dealgned to eupply eoftware for
BBOOO-beecd eyetaata, " addod Oeher. The BBopen le a
non-profit consortiua of companies that aanufecture, develop,
eell or uae products beeed on Motorola's BB000 RISC
architecture,
CROSS ASSEMBLERS
The CSC Cross Assemblers arc actually a set of table-
driven assemblers for several different microprocessors,
currently including 1802/5. 6800/1/11/6303, 6804. 6805.
6809. 6502/3/65C02. 8080/5, 8048. 8051, Z-8. Z-80. with
others being added occasionally. Separate 68010 and 32000
cross-assemblers are also available for the same price. A
macro preprocessor is included with any purchase of cross-
assemblers.
In addition to the basic ability to recognize the target
computer's assembly language and to process symbolic
address expressions, the cross-assemblers have the ability to
support structured assembly programming, the ability to
define conditional assembly directive expressions, and the
ability to assemble progiams stored in modular form.
Since the Motorola 6801 instruction set forms a superset
of the 6800, 6802, and 6808 instruction sets, and is the same
as the 6803 instiuction set, the CSC 6801 Assembler is also
capable of assembling programs written for all of those
microprocessors.
The CSC 6801 Assembler is also capable of assembling
programs for the Hitachi 6303, as it recognizes the six extra
instructions, and for the Motorola 68HC 1 1 , as it recognizes
the extra instructions and addressing modes.
The CSC 6809 assembler also recognizes 6800 and 6801
mnemonics, generating code for ihem to closely simulate the
register and memory changes caused by the instructions on
the 6800 and 6801.
The CSC 6805 Assembler is also capable of assembling
programs written for the Motorola 146805 and 68HC05, as it
recognizes the extra instructions implemented by those
proeesscffs.
CSC also offers simulators to assist in the debugging of
object progiams
destined for 6800/1, 6805, 6809. 6502, and Z-80 systems, on
selected host systems only.
The cross-assemblers, with printed manuals, binary
utilities, and macro
pre-processor, are available for a tetail price of $50 each $100
for three, or all for $200. The C sources arc available for an
additional $50 each, $100 for three, or $300 for all. The
programs may beoideiad from the following address:
Computer Systems Consultants, Inc.
1454 Laua Lane, Conyers, CA 30207
Telephone Number 404-483-4570/1717
68 Micro Journal
Ap«i| '89
55
Jim Howell
5472 Playa Del Ray
San Jose. Ca. 95123
Dear Don.
I have been using Introl C. ver-
sion 1.5. for about three years on
my OS-9 (tm Mlcroware) Level 2
system (6809). and am quite
pleased with it. It seems more
bug-free than some of the MS-
DOS C compilers. A few years
ago. Dr. Dobb's Journal pointed
out several bugs in various C
compilers for MS-DOS. I tried all
of these tests on the Introl C com-
piler and found that it has none
of these bugs. 1 have, however,
found one bug and a "problem" in
the Introl compiler.
The bug occurs when a character
(type "char") variable or expression
is used as a subscript. In Listing l.
"tabl" is an array of structures, and
thecharactervariable "x" Is used as
a subscript. For the last line of the
listing, the code generated by the
compiler multiplies the subscript
"x" by the size of the structure (10
bytes) to get the offset of the desired
element of the array. In this ex-
ample, the result will be 260 (deci-
mal) or 0104 (hex). The high -order
byte of this offset is then cleared
(apparently because It is a "charac-
ter" value!), resulting in 0004 (hex),
or simply 4. Ihe offset is then
added to the address of the start of
the array in order to point at the
desired element of the array. The
result is four bytes from the start of
the array, and not 260 as It should
be. Slmilarbehavior will occur if an
"int" (Integer) array is subscripted
with a character variable or expres-
sion whose value is 128 or more.
This bug can be gotten around by
usingan "int" as the subscript or by
using a cast, such as:
val = tabl((int) x].a:
The "problem" mentioned in the
first paragraph can be illustrated
by considering the program
"sample.c" (listing 2). To compile
and link this program, one uses the
commands:
ice sample
ilink sample
This results in an executable mod-
ule called "sample", on the same
disk as the source file, in my sys-
tem, this is usually disk "/dl". 1
usually "load" a program first be-
fore running it. as follows:
load /d 1 /sample
sample
And now for the problem. When
"sample" is run (the last line above),
an access to the system disk is
made before any output from
"sample" occurs. After some inves-
tigation. I discovered what Is hap-
pening.
When "sample", or any C program.
Is run, It starts In a "start-up" rou-
tine. This start-up routine does
some initialization and set up. be-
fore calling "main". One of the
functions of this initialization is to
put in initial values for external
data, which is all variables declared
outside of all C functions. External
variables which were declared with
initial values will have those values
inserted at this
time. All other external variables
will be set to (zero).
In order to set up the declared ini-
tial values, the start-up code looks
for a module whose name is the
same as that of the executable
module, with the characteis ".DAT"
added at the end. For this example,
it would look for a module named
"sample.DAT". This module, if it
exists, is assumed to contain a
table of initial values and where in
the data area to put them.
First, the "link" system call is used,
to see if the module is already in
memory. If this call fails, the "load"
system call is used, to look for the
module in the commands directory.
This is the disk access which 1
would like to avoid. If the "load"
fails, too. then plugging initial val-
ues Is skipped. Then "main" is
called, which in this case prints a
message.
This scheme works fine for pro-
grams that declare one or more
initial values. In this case, the
module sample.DAT (or whatever
the name happens to be) is part of
the executable file "sample". That
is. if "sample.c" had contained one
or more variables with an initial
value, the file "sample" would con-
tain an executable module called
"sample" followed by the data
module "sample.DAT". The "link"
system call in the start-up code
would succeed and no extraneous
disk access occurs.
In the example, however, no initial
values are given and the module
"sample.DAT is NOT part of the file
"sample". In fact. "sample.DAT" is
not created anywhere.
An easy "fix" would be to declare an
initial value for some (external)
variable. However. I preferred a
solution that did not require an
extra module, so I came up with the
solution In Listing 3. The added
function "fixload" patches the
startup code to skip the attempt to
load the module from the com-
mands directory. It does this by
looking at the function "cprep". the
function in the introl llbraiy that
looks for the data module. The first
two tests in "fixload" check to see if
the module has already been
patched. The rest of the tests verify
that the code being patched is really
the intended code. If all of the tests
succeed, a branch instruction is
inserted. Thlsbranches around the
attempt to "load" the data module.
With this fix. the program still looks
for the module "sample.DAT" on
disk the first time it is run. since the
startup code is executed before
"main" is called. After that, as long
as the in-memory copy of the pro-
gram is run. the extraneous disk
access does not occur. To make the
change more permanent. SAVE the
66
April '69
68 Micro Journal
program (alter running It at least once) and
use VERIFY to correct the CRC. Then use
ATTR on the corrected module to make It ex-
ecutable.
Note that the values used In "flxload" apply to
the partlcularverslon of the Introl C Compiler
that I have, and may or may not be correct for
other versions.
The solution I have described is adequate for
my use. but It requires ihe addition of code
(the function "flxload") to most of the C pro-
grams that I write for OS-9. A more elegant
solution would be to write a separate program
that patches the disk copy of the module
directly (and updates the CRC).
Listing 1
Shows bug in Version 1.5
of Introl C Compiler.
struct
int
a;
lnt
b;
int
c;
lnt
d;
lnt
e;
) tabl [30];
main ()
lnt
val;
cha
r x;
x -
26;
val
- tabl [x] .a
)
The compiler generates the
following assembly output.
The "elra" instruction should not be there.
tabl comm
loc
300
_main: leas
ldb
-3,s
126
stb
Ida
2,3
110
mul
clra
leax
tabl,
y
ldd
d, x
std
0.3
leas
3,3
rts
end
Listing 2
/* sample
.c
06/09/88
V
ma i n ( ) {
printf ("This Is
a
sample
program\n") ;
)
TRANSLATE 6809
TO 68020
A service to provide a raw translation of
6809 assembler to 68000 or 68020
Cut 50% or more off hand translation time
Converts to 68000 or 68020 assembler
Old code may be included in comments
Special conversion of psh andpul to movem
All 6809 addressing modes supported
Choice of register assignments and sizes
Upper to lower case conversion included
In-line warnings for likely problems
Don't pitch It - translate It
Call or fax fot example listings and farther information.
Call (or informs tloo on OS-9 consultancy aervkes, dlak
cacnlng, graphic*, word proceoon, languages and file """"\p"*
'OS-? Is a Trademark of Microware Inc.
n n ;
__| Windsor Systems L
340T Unw (On Lana, LeuMO*. KV 40223 U.&A
» »( * c» w : (SCO) 420 8000 Fax: (Mq 42S 3844
Listing 3
/• sample. c 06/09/88 •/
/* with the function "loadskip" •/
main!) (
fixloadO;
print f ["This is a sample pro<iram\n") ;
)
loadskip.c 06/13/86 15:35
This routine patches "cprep" so that it will not
look on the disk for <module>-DAT when the program
starts .
int
cprep [) ;
fix
load!) (
char *p;
p ■ (char *)
scprep;
if(pI58l «
x6<
it p[57J —
Jx3(
" p[53)
—
0x10
It
Pl54]
—
0x26
" p(55)
—
0x00
u
P(56]
—
0x16
it p|75)
=-
0x10
it
P(76]
= •
0x27)
p|S7)
>
0x20,
P(58]
)
m
0x10,
60Mcro Journal
April 69
57
Q Classifieds ^^^^ sue***,*™ j
Surplus Unused Motorola VME Modules & Electronic Solutions Enclosures for Sale at Discount
MVME133 CPU Module-68020, 1MB DRAM, 68881 FPP, $675
3 serial Pons, EPROM Sockeis, VMEbus Interface
MVME225-I 1MB DRAM Module, A32/D32 VMEbus Inierface $380
MVME320A Winchester/ Fllopy Controller $490
MVME332 8 Channel intelligent Serial Communications Module $675
Series 7 Electronic Solutions 7 Slot Desktop Enclosure, P1/P2 $695
Backplane, 325W PS, Space for Winchester/Floppy/Tape
Respond to: John Gannon, RPG. P.O. Box CI 2399, Ste 162, Scottsdale. Arizona 85267 Phone (602) 951-
3373
***
S+ Memory Cards, CPU Cards. Hard Disks w/Controller Cards, I/O Cards, Cabinets, Power Supplies.
S/09 CPU Cards, Memory, I/O Cards, Controller Cards. Cabinets, Power Supplies
3-Dual 8" drive enclosure with power supply. New in box. $125 each.
5-Siemens 8" Disk Drive, $100 each.
Tom (615) 842-4600 M-F 9AM to 5PM EST
***
(JMX-20 with 68881 Unillex, utility pgmsand C; 16 MHZ. This month only $1900. Unused.
Marc Tailsman MD, 30818 S Coast Hwy, S Laguna, CA 92677, MSG: 714 499 1877
UBiMSfaBfBjgMBiBjgraEEEMaMotgjgjgfgjiifi^ia^^
|T«
f| 1 1 1 X /S K -IIOS />! S-IIOS
Transfer Utilities
For 68XXX and C0C0* OS-9™ Systems
Now READ - WRITE - DIR - DUMP - EXPLORE
FLEX, SK-DOS & MS-DOS Disk
These Utilities come with a rich set of options allowing the
transfer of text type files from/to FLEX & MS-DOS disks.
*CoCo systems require the D.P. Johnson SDISK utilities and OS-9 and two
drives of which one must be a "host" floppy.
CoCo Version: $69.95 68XXX Version $99.95
S.E. Media
PO Box 849. Hixson.TN 37343
(615)842-4601 Telex 5106006630 FAX (615)842.7990
BUEjaiErBGJgjgffljEiarBBBEjfflEjaa^
58 April 89 68 Mao Joumal
r
■\
SK*DOS768K
Read the fine print to see what's in SK*DOS/68K:
Full DOS documentation plus on-line helpO Multiple directories
O User-installable device driven D Install up to 8 different I/O
devices O Keyboard type-ahead D Print-screen D Virtual (RAM)
disk O Disk cache D Up to 10 dtivts □ SW or 3H* floppy diives G
Hard drives to 64 megabytes each O I/O redirection to drives or I/O
O Time/date stamping Of files O File or disk write protect (even
hard disk) Q Batch Tiles O Support for 68000, 68010. 68020 □
Monochrome or color vidao board support O Read and wiite MS-
DOS disk files □ 6809 Emulator □ Powerful utilities such as copy-by-
date, undelete, show differences between fiiles, prompted delete, tent
fie browse, and more - all included O Simple Basic included O Fast
assembler included O Line editor included O User support via
newsletter and BBS O Available software; C compiler, full Basic,
screen editors, disassemblers, cross-assemblers, spelling checker, text
formatter, music editor, hard disk manager, ROM-based debugger,
modem communications programs, etc. More compilers coming, O
(Some features may not be implemented in all hardware manufac-
turers' implementations.)
Individual copies of SK*DOS/6SK are $140; less in
quantity or when bundled with hardware. Send
Jor our 6809 / 68K hardware and software
catalog. Also available as part of
hardware/software educational course.
our
f"_ ■ \J Software Systems Corp.
VT A P . K p - ° Box 209J
^l"l\ IN Mt Kisco, NY 10549
(914)241-0287
BBS (914) 24 1-3)07 Fax (914) 241-8607
OS-9.m SOFTWARE
FORTH09 A Foith-83 system lor OS-9. many exciting fea-
tures, integrated wel into OS-9 environment Allows you to easily
save executable program modules written in Forth (See t)»
FORTH column in this magazine.) $150.00
Manual only with credit toward later software purchase.. $25.00
FORTH09 for OS-8768000 win be released soon! Inquire!
MSF MS-DOS File Manager module used with SDISK3 driver to get
complete transfer capabilities to/lrom MS-DOS disks (360K and
720K formats inducing 3.5*) For CoCo-3. REQUIRES SDISK3
MSF alone $45.00 with SDISK3 included . $65.00
SDISK3 replacement floppy "driver" lor tlte COCO-3 w/OS 9 L2.
Supports all OS-9 formats, plus required by transfer programs to
access non-OS-9 lormats. $29.95
L1 UTILITY PAK The most extensive and useful utility package
for either Level 1 or 2 OS-9. 40 programs, usable with any OS-9
system. Includes MACGEN command language compiler. $49.95
L2 UTILITY PAK More utilities, mostly for Level 2. Includes
COCO specific software Ram Disk driver and error driver, others
are non-system dependent. $39.95
L1+L2 COMBINATION Both together for.. $75.00
Diskettes are 5.25* Color Computer OS-9 Format unless requested
otherwise All orders must be prepaid or COD. VISA/MC accept-
ed. Add shipping, $2 00 min (S3 00 for FORTH09)
Order from!
D. P. Johnson, 7655 SW Cedarcrost St.,
Portland, OR 97223 (503) 244-8152
OS-4 I* a trademark or Miooarara and Miami* Inc.
MS-OOStoamdamarkalMtoTauA mc
FORTMDS It a IrarfarraA <t OPMtmn
SOFTWARK
«8000 C CROSS-COMPILER
SltC . SKOOSMSIX}5,l>NlX,XKHll IO»JI\CT OSI.1t
Acftpv Kak C IM6MJC. ffl»erilc*6a00Ou»<>^ ode
l*bda«g0l0cnarancn>bkr.kfejvfc> gn»*al l*r SKUOS.ba m»y he modified
CROSS-ASSKMUI.KRS WITH MACRO CAPABILITIES
km ii ti6.n.t;x,Oii.vnin.KX.usuos.i'Mi<.Ki>os.xMix mtaa m.uum
Sprtilr IKM. »«n. MOI/I I, MW4.M05, MOT. M. JM. W «. (Ml. KOK5. (>80 10. 3?000
UtUtf noH uacaiMcn in C. with kodThriki** uuliuet Sounxt for «u moral SWearb.JIUOfor
J, iy» tin ill
CMOUKM TELECOMMUNICATIONS PROGRAM
siM-nzooi,sKnoi.iwn*itm>si.xKNix.vmw:x otJKcr-Oxi.r kacii jjs
Mnni«iicn •>■ nmiMl rnnk. I>k mtfei. MOW Ml. XcK Xl*> m
SUPER SLEUTH DISASSEMBLERS
e»c« tntir.x inmst iitt-vwrtm oairn-axtf k*cw t$o fir.xait.coco
barms tflrfnEnttioarce on dM* **h1j|**v mfcidfiirrl. tajr> edVtMf
Srm.it riaro u.i.m.wmm mn m ucvnin m™
COCDOO5^»V*tr»M00.UJ.5.1.ft«a! an. (uUM«l.ll~l)
Uatt «ccu» tIMtLtX.OSMlNIFLEX.MSOOS.IINIX-SliDOS. XENIX
DEBUGGING SIMULATORS FOR POPULAR 6. BIT CPUS
nm vt-rtxt inmost uhwfui oijscr-osir hih u**coco run. coco <st
tmrmutfl* nrriitiir pmrwrv .ithidn dnawhtt I.Tmidjnf , himry nlat
SfxityUm rJ0iyi.<u»*».«»i.<*>9OS»o.!r. zjrjRix ml,
ASSEMBLER CODE TRANSLATORS FOR 6S02, 6800/1. 6809
uai »<an tn-TutxwJXist».VNtruu
ami m um 4 mm wf-imd. tit-tiEi m~as* o**i hhwfuj
FULI..SCREEN XBAStC PROGRAMS »«> nv rerun*
AVAILABLE FOR FLEX, UNIFLEX, AND MSDOS
Urrrafaf Oram** I Oorfl
SMI WWC Hi
llOOWUne. DO
1100 •nwit. SUntau
Tlfaeb Urn Spraditee HOOWtonc. 5M »Mro
DISK AND XBASIC UTILITY PROGRAM LIBRARY
SU-FIS1 litVNtriJLXWSBOS
Ed4 drtt Melon. ion drrotlcrf.mavmfinwia* acting, da dnk sou. ns^mDtmncorall
BASIC puv«l. uri BASIC |ne«l. Mr mlUX wrantoncludcwnindnsquDKZvcoV
PROFESSIONAL SERVICES
FOR T W ¥. COMPUTING COMMUNITY
CVSTOMtZEO PROGRAMMING
We will cuttttniM my <4 (far fwtyw** dc*oitn*4 i
■YBuliKd cu>u*n«Ei w Or to Ctr*a tarw *-n*-^-K*n
ttpon \bt raarti-w^xiilfy «f the n**di/k ■.••m.
I iha ■l^rrvafn-ra Hirobt bc-xKure ror
the c harp for lisrJicxaarniutK-^ rfcycndi
CONTRACT PROGRAMMING
We wilicruic new p-rt-fiwdcaT modify ciuuof pn-*zra*au cm a tgnt-m taSw. >tctti» ** n*tc
(Mbrtitd lora-fa twenty -pean; the t»w»T*L-w-ri en wtucb w* Hvt pt-rtt-nwil cnj-o-an fw*>raWfnt3j
u-cJyrJc owop^auiu nvwfcto <rf n wi ff iPMney hk IxJaHa; ifiM, Qtwiaqp*, Um*-*ic. r4nacj-»«-J , nw-u
popular r-tfmfcb of ra.nti»**«*w nxfualuti OCC. IBM. DC. HP, AT*T. tod otoa -x-fwl*
bwd> trf mwrmmp***. .rx l*1,n f ftMCVl . 6*09. 2». tSOL MOtO. n
Unfxjtpi ■*) onfflKHif it-V-mi. i» Lt-4rfni ra-afuiff m u
wnjV ftrwrdf oDD-oAm: -be chwsc far ami puism hi » k»uOr bt i* to* or by ibe taii
CONSULTING
We aTTet ft -nde -i-^ 0/ rasTft-a*-*a« *a) «■.
mfci t ftpd dfup* <-> hi* mp-c r-fb-rav-i
tWtd ■**!****■ BUM. LTaT**fll ttU CS ( Tr**a*a*a*aV
Computer Systems Consultants Inc.
khiauk
CW^x. Go|i 3CCDI
IWHII^IO IWIII1I1I1
ii«l M fc I- hJ m_ n« a ■ ^*. VQA *4 UUTtS CMP l| I Uil,.«fa.«<4 M <...Ml«
68 Micro Journal
AprH '89
59
Clearbrook Software Group (604) 853-911 8
CSG IMS is THE full featured relation-
al database manager for OS9/OSK.
The comprehensive structured ap-
plication language and B +Tree Index
structures make CSG IMS the Ideal
tool for file-intensive applications.
CSG IMS lor C0C02/3 OS9 LI/2 (single user) $169.95
CSG IMS lor 0S9 L2 or 68000 (multi user) $495.00
CSG IMS demo with manual $30
MSF - MSDos File Manager for CoCo 3/OS9 Level 2
allows you to use MSDos disks directly under OS9.
Requires CoCo 3, OS9 L2. SDISK3 driver $45.00
SERINA - System Mode Debugger for OS9 L2
allows you to trace execution of any system' module,
set break points, assemble and disassemble code and
examine and change memoiy.
Requires CoCo3 or Glmlx II, OS9 L2 & 80 col. terminal $139.00
ERINA - Symbolic User Mode Debugger for OS9
lets you find bugs by displaying the machine state and
Instuctlons being executed. Set break points, change
memory, assemble and disassemble code.
Requires 80 column display, OS9 L1/2 $69.00
Shipping: N. America - $5, Overseas - $10
Clearbrook Software Group P.O. Box 6000-499, Sumas, WA 98295
OSS It * tradtmart of Mlcrovwa Syt lemi Corp.. MSDos It a Iradtmarfc of Microsoft Corp.
SPECIAL
ATARI™
&
OS-9™
NOW!
- If you have either the
Atari 520 or 1040 -
you can take advantage of the
"bargain of a lifetime"
OS-9 68K and BASIC
all for the low, low price of:
$150.00
Call or Write
S.E. /Wedia
5900 Cassandra Smith Rd.
Hixson, TNJ 37343
615 842-4601
FAX (615J842-7990
r
^\
ATARI & AMIGA
CALL
As most of you know, we are veiy sensitive to your
wishes, as concerns the contents of these pages. One of
the things that many of you have repeatedly written or
called about is coverage for the Atari * Amiga"* series of
68000 computers.
Actually we haven't been too keen on those systems
due to a lack of serious software. They were mainly
expensive "game-toy" systems. However, recently we are
seeing more and more honest-to-goodness serious soft-
ware forthe Atari & Amiga machines. That makes a differ-
ence. I feel that we are ready tostait someserious looking
into a section for the Atari & Amiga computers. Especially
so since OS-9 is now lunning on the Atari deview copy on
the way for evaluation andiepoit to you) and rumored for
the Amiga. Many of you are doing all kinds of interesting
things on these systems. By sharing we all benefit.
This I must stress - Input fi-om you on t be Atari
& Amiga. As most of you are aware, we are a
"contributor supported" magazine. That means
that YOU have to do your part. Which Is the way it
has been for over 10 years. We need articles, tech-
nical, reviews of hardware and software, pro-
gramming (all languages) and the many other fac-
ets of support that we have pursued for these many
years. Also I will need several to volunteer to do
regular columns on the Atari & Amiga systems.
Without constant input we can't make it ftyl So, if
you do your part, we certainly will do ours. How
about it, drop me a line or give me a phone call and
I will get additional information right back to you.
We need your input and support if this Is to succeed!
DMW
60
April -89
J
66 Mcro Journal-
THE 6800-6809 BOOKS
..HEAR ye. HCAR
OS-9"
User Notes
By: Peter Dibble
The publishers of 68' Micro Journal are proud Co make
available Che publication of Peter Dibbles
OSS us« tores
Information for the BCCOntCR Co the HO,
regular or CoCo 0S9
Dalng 059
HELP. HINTS. PROBLEMS, REVIEWS. SUGGESTIONS, C0MP1AINTS,
0S9 STANDARDS, Generating a New Bootstrap, BulJdlnR a
new System Disk, 0S9 Users Croup, etc.
Program loterfsclng to 0S9
DEVICE DESCRIPTORS, DIRECTORIES. "FORKS*. PROTECTION
"SUSPEND STATE", "I I PES", 'INPUT/OUTPl T SYSTEM", etc.
Programing Languages
Assembly Language Programs and Interfacing: Baslc09, C,
Pascal, and Cobol reviews, programs, and uses; etc.
Disks Include
■o typing all the Source Listings to. Source Code and,
where applicable, saaembled or compiled Operating
Programs. The Source and the Discussions in che
Columns can be uaed "as la", or as a "Starting Point*
for developing your OWN nore powerful Programs.
Programs sonetlnes use aultlple Languages such as a
ahort Assembly Language Routine for reading a
Dlreccory, which Is then "piped* to a Bsalc09 Routine
for output formatting, etc.
BOOK $9.95
Typeset — w/ Source Listings
(3-Hole Punched; 8 x 11)
Deluxe Binder _._-_s5.50
All Source Listings on Disk
1-8" SS. SD Disk -
2-5" SS. DO Disks
- - $14.95
- $24.95
FLEX™
USER NOTES
By: Ronald Anderson
The publishers of 68 MICRO JOURNAL are proud to
ke available the publication of Ron Anderaon'a FLU
USER MOTES, In book form. This popular monthly column
has reen s regular feature In 68' HICKO JOURNAL SINCE
1979. It has earned the respect of thoussnds of
68 MICRO JOURNAL resders over the yeara. In fact,
ott'a column has been described as the 'Bible' for 68XX
users, by some of the world's leading microprocessor
professionals. The most needed and popular 68XX book
available. Over the years Ron's coluan hss been one of
the most popular In 68 MICRO JOURNAL. And of course
68 MICRO JOURNAL is the most populsr 68XX magazine
published.
Listed below sre s few of the TEXT files Included In the
book and on diskette.
All TEXT files in Ihe book are on the disks
LOGO C 1 File load program to offset memoiy — ASM PIC
MEMOVECl Memoiy move program — ASM PIC
DUMP Cl Pnnler dump program — uses LOGO — ASM PIC
SUBTEST Cl Simulation ot 6800 code to 6809, show differences — ASM
TERMEM C2 Modem input to disk (or olher port inpul to disk) — ASM
M C2 Output a file 10 modem (of another pan) — ASM
PRINT C3 Parallel (enhanced) pnnter driver — ASM
MODEMC2 TTL output lo CRT and modem (or olher port) — ASM
SCIPKG Cl Scientific math routines — PASCAL
U C« Mini-monitor disk resident, many useful (unctions — ASM
PRINT C4 Parallel pnnler driver, without PFl AG — ASM
SETCS Set printer modes — ASM
SETBAS1 C5 Set printer modes — A.BASIC
NOTE: .C1..C2, etc. -Chapter 1. Chapter 2, etc.
••Over 30 TEXT files included Is ASM (assembler J-PASCAL-
PIC (position Independent code) TSC BASIC-C, etc.
Book only: $7.95 + $2.50 S/H
With disk: 5" $20.90 + $2.50 S/H
With disk: 8" $22.90 + $2.50 S/H
Shipping A Handling $3.30 per Book. $2 30 per Disk xt
Foreign Olden Addtt 50 Surface Mail
O-S7.00 JUrMiU
If paying by check - Please alkw t*6 weeks delivery
* All Currency in U.S. Dollars
Continually Updated In 68 Micro Journal Monthly
Computer Publishing Inc.
5900 Cassandra Smith Rd.
Hixson, TN 37343
'FLEX la a trademark of Technical Systems Consultants
*0S9 Is a trademark of Mlcroware and Motorola
*68' Micro Journal la a trademark of Computer Publishing Inc.
(61 5) 842-4601
Telex 5106006630 FAX (615)842.7990
68 Mraro Journal
April '89
61
1
!!! Subscribe Now !!!
68 MICRO JOURNAL
OK, PLEASE ENTER MY SUBSCRIPTION
Bill My: Mastercard^ VISAj |
Card*
. Exp. Date.
For 1 Year
2 Years
3 Years
Enclosed: S
Name
Street.
City
State
Zip
Country_
My Computer Is:
Subscription Rates
U.S.A.: 1 Year $24.50, 2 Years $42.50, 3 Years $64.50
'Foreign Surface: Add $12.00 per Year to USA Price.
•Foreign Airmail: Add $48.00 per Year to USA Price.
'Canada & Mexico: Add $9.50 per Year to USA Price.
*U.S. Currency Cash or Check Drawn on a USA Bank !
\ /
68 Micro Journal
5900 Cassandra Smith Rd
POB 849
Hixson.TN 37343
Telephone 615 842-4600
Telex 510 600-6630
62
-A'
Reader Service Disks
Poetry,
Disk- 1 Filesoil, Minical, Minicopy \Minifms, "Lifetime
"Foodlisl, ••Did.
DUk- 2 Diskcdit w/ insi & fixe*. Plime. •Pnnod. ••Snoopy.
"Football, "Hexpawn."Liretime.
Disk- 3 Cbug09, Seel, S«2. Find. Table2. Inlext. Disk-exp,
•Disksave.
Disk- 4 Mailing Program, *Finddai, "Change, •Testdisk
Disk. S 'DISKFDC 1, 'DISKFK 2, ••LETIER, "LOVESIGN.
••BLACKJAK, "BOWLING.
Disk- 6 ••Purchase Order, Index (Disk file mdx).
Disk- 7 Linking Loader, Rload, darkness.
Disk. 8 Cncsl, Lanpher (May 82).
Disk- 9 Dalecopy, Diskfix9 (Aug 82).
Disk. 10 Home Accounting (July 82).
Disk- 11 Dissembler (June 84).
Disk- 12 Modcm68 (May 84).
Dlsk-13 •Imlmf68, Testmf68,*Cleanup.*Dskalign.l4elp.Dale.Txl
Dlsk-14 •Inil. 'Test. •Tenninal, 'Find, 'Diskcdii. Iiiil Lib.
Dlsk-15 Modcm9 + Updates (Dec, 84 Gilchiisi) to Modon9
(April 84 Commo).
Disk- 16 Copy.Txl, Copy. Doc. CaiTxl. Cai.Doc.
Disk- 17 Match Utility, RATBAS. A Basic Preprocessor.
Disk-18 ParscMod, Sizc.Cind (Sept. 85 Armsuong),CMDCODE.
CMD.Txt (Sept. 85 Spray).
Dlsk-19 Clock. Dale, Copy, Cat, PDE1. Asm A Doc, Errors Sys,
Do, Log.Asm & Doc.
Disk. 20 UNDC Like Tools (July A Sept 85 Taylor A Gilchrist)
Diagoii.C, Grep.C, LS.C, FDUMP C.
Uisk-21 Utilities A Games - Dale, Life, Madness, Touch, Goblin,
Slarshol, A 15 more.
Disk-22 Read CPM & Non-Fl.EX Disks. FraserMay 1984.
Disk-23 ISAM, Indexed Sequential file Accessing Methods,
Condon Nov. 1985. Extensible Table Driven, language
Recognition Utility, Anderson March 1986,
Disk-24 68° Micro Journal Index of Articles A Bit Bucket Items
rrom 1979 - 1985, John Current.
Dlsk-2S KERM1T for FLEX derived ftom the UNDC ver. Burg
Feb. 1986. (2)-5" Disks or (0-8" Disk.
Disk-26 Compacu UrriBoard review, code A diagram, Burlison
March 86.
Dlsk-27 ROTABlT.TXT, SUMSTEST.TXT. CONDATA.TXT.
BADMEN.TXT.
Disk-28 CT-82 Emulator, bit mapped.
Disk -29 "Star Trek
Dlsk-30 Simple Winchester, Dec. '86 Green.
Disk-31 "• Read/Write MS/PC-DOS (SK'DOS)
Disk-32 Heir-UNK Type upgrade 68MJ 2/87
Dlsk-33 Build the GT-4 Terminal - 68MJ 1 1/87 Condon.
Disk 34 FLEX 6809 Diagnostics, Disk Drive Test. ROM Test,
RAM Test - 68MJ 4/88Koipi
NOTE:
This is a reader seivice ONLYI No Warranty it offeicd or implied, they are
as received by 68' Micro Journal, and are for reader convenience ONLY
(some MAY include fixes or patches). Also 6800 and 6809 programs are
mixed, as each is fairly simple (mostly) to convert to the other. Software is
available to cross -assemble all.
♦ Denotes 6800 - ••Denotes BASIC
• • • Denotes 68000 - 6809 no indicator.
8" disk $19.50
5" disk $16.95
Shipping & Handling -U.S.A. Add: - $3.50
Overseas add: $4.50 Surface - $7.00 Airmail
68 MICRO JOURNAL
5900 Cassandra Smith Rd.
Hixson.TN 37343
(615) 842-4600 - Telex 510 600-6630
April '89
68 Micro Journal
The Only 6809 BASIC to Binary Compiler for OS-9
FLEXorSK*DOS
Even runs on the 68XXX SK*DOS Systems*
Hundreds Sold at
Suggested Retail:
$100.00
• 6809 ■ 0S-9™ users can now transfer their FLEX™
Extended BASIC (XBASIC) source files to OS-9, com-
pile with the OS-9 version and run them as any other
OS-9 binary "CMD" program. Much faster than BASIC
programs.
• 6809 - FLEX users can compiler their BASIC source
files to a regular FLEX "CMD" file. Much faster execu-
tion.
•68XXX - SK'DOS™ users running on 68XXX systems
(such as the Mustang-08/A) can continue to execute
their 6809 FLEX BASIC and compiled programs while
getting things ported over to the 68XXX. SK'DOS
allows 6809 programs to run in emulation mode. This is
the only system we know of that will run both 6809 &
68XXX binary files.
K-BASIC is a truecompiler. Compiling BASIC 6809 pro-
grams to binary command type programs. The savings
in RAM needed and the increased speed of binary
execution makes this a must for the serious user. And
the price is now RIGHT!
Don't get caught up in the "Learn a New Lan-
guage" syndrome ■ Write Your Program in
BASIC, Debug it in BASIC and Then Com pile
it to a .CMD Binary File.
For a LIMITED time
save over 65%...
This sale will not be
repeated after it's
over! *
SPECIAL
Thank-You-Sale
Only J\
rom:
C
S.E. Media
P
I
5900 Cassandra Smith Rd.
Hlxson, Tn 37343
Telephone 615 642-6809
Telex 510 600-6630
A Division of Computer Publishing inc.
Over 1,200 Titles- 6800-6809-66000
FAX (615)842-7990
* K.BASIC will ran under 6SXXX SK'DOS in emulation mode for ihc 6809.
Price subject lo change wiihovl notice.
68 Mao Journal
April '89
63
PT-68000 SINGLE BOARD COMPUTER
The PT68K2 is Available in a Variety of Formats
From Basic Kits to Completely Assembled Systems
BASIC KIT (8 MHZ) - Board. 68000.
HUMBUG MONITOR + BASIC in ROM.
4K STATIC RAM. 2 SERIAL PORTS, all
Components $200
PACKAGE DEAL • Complete Kit with
Board 68000 10 MHZ. SK'OOS. 51 2K
RAM. and all Necessary Parts $575
ASSEMBLED BOARD (12 MHZ)
Completely Tested. 1024K RAM,
FLOPPY CONTROLLER. PIA. SK'DOS
S899
ASSEMBLED SYSTEM - 10 MHZ
BOARD. CABINET POWER SUPPLY.
MONITOR + KEYBOARD. 80 TRACK
FLOPPY DRIVE, CABLES $1299
For A 20 MEG DRIVE, CONTROLLER
and CABLES Add $295
PROFESSIONAL OS9
"SK'DOS It a Tradema* o(
STARK SOFTWARE SYSTEMS CORP.
"OS9 to a TiBdama* d MictowatB
SS 00
FEATURES
MC68000 Processor, 8 MHZ Clock (optional
10,12.5 MHZ)
51 2K or 1024K of DRAM (no wait slates)
4K of SPAM (61 16)
32K.64K or 128K of EPROM
Four RS 232 Serial Ports
Floppy disk controller will control up to lour
5 1/4", 40 or 80 track.
Clock with on-board battery.
2 - 8 bit Parallel Poits
Board can be mounted in an IBM type PC/
XT cabinet and has a power oonnector to
match the IBM type power supply
Expansion ports - 6 IBM PC/XT compatible
I/O ports The HUMBUG" monitor supports
monochrome anoVor color adaptor cards
and Western Digital Winchester interlace
cards
PERIPHERAL TECHNOLOGY
1710 Cumberland Point Dr., Suits 8
Marietta, Georgia 30067
404/984-0742
VISA/MASTERCARD/CHECK/C.O.D.
Send For Catalogue
For Complete Information On All Products
(r
r
DATA-COMP special
Heavy Duty Power Supplies
For A limited time our HEAVY DUTY SWITCHING POWER SUPPLY. These are BRAND NEW units. Note that these
prices are less than 1/4 the normal price for these high quality units.
r
Make: Boschert
Size: I0.S x 5 x 2.5 inches
Including heavy mounting bracket and hcaisink.
Rating: in 1 10/220 volts ac (strap change) Out: 130 watts
Output: +5v-10amps
+ 12v. 4.0 amps
+ I2v - 2.0 amps
-12v . 0.5 amps
Mating Connector. Terminal strip
Load Reaction: Automatic short circuit recovery
SPECIAL: $59.95 each
2 or more $49.95 each
Add: $7.50 each S/H
V
J
Make: Boschert
Size: 10.75 x 6.2 x 2.25 inches
Rating: 1 10/220 ac (strap change) Out: 81 watts
Outputs: +5v - 8.0 amps
+ 12v - 2.4 amps
+ 12v - 2.4 amps
+ 12v . 2.1 amps
-12v - 0.4 amps
Mating Connectors: Molex
Load Reaction: Automatic short circuit recovery
SPECIAL: $49.95 each
2 or more $39.95 each
Add: $7.50 S/H each
^
5900 Cassandra Smith Rd., Hixson, Tn. 37343 Telephone 615 842-4600 Telex 51 600-6630 Fax (615)842-7990
64
April '89
68 Micro Journal
Now Offering: *FLEX'" (2 Versions)
AND 'STAR-DOS PLUS+ '"
For Ordering Call
(615)842-4600
FROM - DATA-COMP, C.P.I.
A Family of 100% 68XX Support Facilities
The Folks who FIRST Put FLEX' V on
The CoCo
TSC Editor
NOW $3 SOT
STAR DOS PLUS +
• Functions Same as FLEX
• Reads - writes FLEX Disks
• Run FLEX Programs
• Just type: Run * STAR-DOS"
• Over 3100 utilities & progiams
to choose from.
PLUS
ALL VERSIONS OF FLEX & STAR-DOS* INCLUDE
Read-Write-Dir RS Disk +
Run RS Basic from Both
More Free Utlities
External Terminal Program
+ Test Disk Program
+ Disk Examine & Repair Program
■f Memory Examine Program
+ Many Many More!!!
TSC Assembler
Kr|i»00
NOW $35.09
UPS Battery Backup
330 VA UPS 4 Outlets
520 VA UPS 4 Outlets
800 VA UPS 6 Outlets
1200 VA UPS 6 Outlets
Disks
309.00 5" Box of ten ( 1 0)
599.00 DS-DD 5.99 40 Track
859.00 DS-DD 14.95 80 Track
999.00 3.5 DS-DD $ 15.95
Printers
EPSON
LQ-500 24 Pin 350. 00
LX-800 9 Pin 239. 00
Gender Changer
SERIAL
Male to Male 8.95
Female to Female 8.95
Centronics
Male to Male 9.95
Female to Female 9.95
Switch Boxes
Serial/Parallel Converter 69.00
Parallel Serial Converter 69.00
Serial 2 Position Switch Box 27.00
Parallel 2 Position Switch Box 27.00
Serial 4 Position Switch Box 35.00
Parallel 4 Position Switch Box 33.00
Serial 4 PoslUon Crossover Switch 44.00
Parallel 4 Position Crossover Switch 49.00
Serial 2 Position 9 Pin Switch Box 44.00
DATA-COMP
5900 CASSANDRA SMITH RD.
HDCSON. TN. 37343
SHIPPING
USA ADD 2%
FOREIGN ADD 5%
MJN $3.60
(615)842-4600
FOR ORDERING
TELEX 5 1O60O6630
An Ace of a System in Spades! The New
MUSTANG-08/A
:
TM
Now with 4 aerial porta standard At speed increase to 12 Mhz CPU + on board battery
backup and Includes the PROFESSIONAL OS*9 package - wwii^g the $500.00 OS-9
C compUerl This offer wont last foreverl
NOT 128K, NOT 512K
FULL 768K No wait ram
Now even faster!
with 12 Mhz CPU
I
The MUSTANGOB™ system took every hand from al
I other 68006 syaema we taated. running OS-9 6SK1
I The MUST ANG08 rdudes OS^6fiK~ and** Polar
| Stark* SrCDOS™ 9CDOS is a single user, single tasking
| system that takes up where ^RBC™ left off. SKDQS is
| actuary a 68XXX FLEX type system r Not a ISC ptoducL)
m ^rs sH m OS-9 6 8 K a v amrn i sjLBi l btawrnaaal LMtiii-S iut'- ,
CCantpOe timec OS« 68K Hani Disk
MU5TANG0B 8 Urn CPU 0n*t-32sK
Other poputor ffiOOe sytarn Imh-Oaase
MUSTANG420 OiAi-Hase
-^
System Includes OS-9 68K or SK-DOS - Your Choice
Specifications:
CPU
MC68D0B
12 Mhz
HAM
7sax
No Wats**
25K CMpj
PORTS
4-RS32
UC8BB1 QUART
2-fit*PaaU
MOSB21 PIA
CLOCK
MK48T02
Real Trne Cta* B* BAJ
EPflOM
t6K,3»orMK
jrtititto
FLOPPY
WDim
SlftDmaa
HUB DISK
Mates Port
WD1CCB Bod
25 Megabyte
Hard Disk System
V Now more serial ports * faster CPU i
J Battery B/U - and $850.00 OS-9 Profes- 1
[ v slonal with C compiler Included!
5
J
*$400.00
See Mustangs M
for trade-in delate
MUSTANG-08
LOOK
Smsxfe
32 bk Rt^utrr
C...1B.0...9.0
i ».a...6.3
rwi-,v
register long I;
tor (bO; I < 096999; *4t);
$2,398.90
Complete with PROFESSIONAL OS-9
includes the $500.00 C compiler, PC
style cabinet, heavy duty power supply,
5" DDDS 60 track floppy, 25 McgByte
V Hard Disk - Ready to Run j
Uha\e other 68006 cystoma there are several significant
drterences. The MUSTANG-08 is a M 12 Megahertz sydam. The
RAM in*) NO wait Sates, this means M bore MUSTANG type
performance.
Also, aJb*ty for addressable RDM4>ROM the RAM b the
maximum slowed for a 68008. The 66008 can only address a
total of 1 Megabytes of RAM The desrjn afbws al the RAM
apace (tar al practral purposes) to be utlfead What Is not
avslabie to the user b required and reserved for the system
A RAM dak of 480K can be easry ajrfQured. leaving 288K
free for pnjrarrvByaterri RAM space. The RAM OISK can be
configured to any siae your ^ la stf i x i requirea (system must
have 128K In addition to Is other requirernents). Leaving the
mrardtr of the ongtoal 7B8K for program use. Sutraari
source included (dnvera, etc)
must an gjs k in. h, iii rfcn
Data-Comp Division
9^^g^ fl Decade of Quality Service'
y j W^pjjjfP Systems WaktWkie
Computer Publishing, Inc. 5900 Cassanfra SmNh Road
Tsterfione 615842-4601 • Telex 510 600-6630 rtaxi Tn 37343
S ,
* These will SWPC r*<ten*y FLEX 5" - Col tor spectt Mb.